Python基于locals返回作用域字典


Posted in Python onOctober 17, 2020

英文文档:

locals()

Update and return a dictionary representing the current local symbol table. Free variables are returned by locals()when it is called in function blocks, but not in class blocks.

返回当前作用域内的局部变量和其值组成的字典

说明:

1. 函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)

>>> locals()
{'__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__doc__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__spec__': None}

>>> a = 1

>>> locals() # 多了一个key为a值为1的项
{'__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, 'a': 1, '__doc__': None, '__name__': '__main__', '__builtins__': <module 'builtins' (built-in)>, '__spec__': None}

2. 可用于函数内。

>>> def f():
  print('before define a ')
  print(locals()) #作用域内无变量
  a = 1
  print('after define a')
  print(locals()) #作用域内有一个a变量,值为1
>>> f
<function f at 0x03D40588>
>>> f()
before define a 
{} 
after define a
{'a': 1}

3. 返回的字典集合不能修改。

>>> def f():
  print('before define a ')
  print(locals()) # 作用域内无变量
  a = 1
  print('after define a')
  print(locals()) # 作用域内有一个a变量,值为1
  b = locals()
  print('b["a"]: ',b['a']) 
  b['a'] = 2 # 修改b['a']值
  print('change locals value')
  print('b["a"]: ',b['a'])
  print('a is ',a) # a的值未变

  
>>> f()
before define a 
{}
after define a
{'a': 1}
b["a"]: 1
change locals value
b["a"]: 2
a is 1
>>>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实时遍历日志文件
Apr 12 Python
python中redis的安装和使用
Dec 04 Python
详解Python中的动态属性和特性
Apr 07 Python
python中reader的next用法
Jul 24 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python之随机数函数的实现示例
Dec 30 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 Python
Python classmethod装饰器原理及用法解析
Oct 17 #Python
Python基于staticmethod装饰器标示静态方法
Oct 17 #Python
详解python算法常用技巧与内置库
Oct 17 #Python
Python 操作SQLite数据库的示例
Oct 16 #Python
python Selenium 库的使用技巧
Oct 16 #Python
用Python进行websocket接口测试
Oct 16 #Python
python如何控制进程或者线程的个数
Oct 16 #Python
You might like
php文件操作实例代码
2012/05/10 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
浅谈 vue 中的 watcher
2017/12/04 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
Python之eval()函数危险性浅析
2014/07/03 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
酒店大堂副理的职责范文
2014/02/13 职场文书
机械专业技术员求职信
2014/06/14 职场文书
cf战队收人口号
2014/06/21 职场文书
学校工作推荐信范文
2014/07/11 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
小学信息技术教学反思
2016/02/16 职场文书
手写实现JS中的new
2021/11/07 Javascript