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中的super()方法使用简介
Aug 14 Python
浅谈Python中函数的参数传递
Jun 21 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
python如何实现反向迭代
Mar 20 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python des,aes,rsa加解密的实现
Jan 16 Python
Python max函数中key的用法及原理解析
Jun 26 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中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
用 JSON 处理缓存
2007/04/27 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python数据结构之二叉树的遍历实例
2014/04/29 Python
python动态性强类型用法实例
2015/05/09 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python面向对象 反射原理解析
2019/08/12 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
Python多线程的退出控制实现
2020/08/10 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
Python学习之time模块的基本使用
2021/01/17 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
总结表彰大会主持词
2014/03/26 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
PyMongo 查询数据的实现
2021/06/28 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
Python实现制作销售数据可视化看板详解
2021/11/27 Python