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 相关文章推荐
Django的数据模型访问多对多键值的方法
Jul 21 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
Python带动态参数功能的sqlite工具类
May 26 Python
3个用于数据科学的顶级Python库
Sep 29 Python
python学习开发mock接口
Apr 28 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
Python实现元素等待代码实例
Nov 11 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
python中的plt.cm.Paired用法说明
May 31 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
Python实现配置文件备份的方法
2015/07/30 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
小学毕业典礼主持词
2014/03/27 职场文书
班组拓展活动方案
2014/08/14 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS