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提示No module named images的解决方法
Sep 29 Python
python脚本替换指定行实现步骤
Jul 11 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
python实现对csv文件的列的内容读取
Jul 04 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 Python
pytorch fine-tune 预训练的模型操作
Jun 03 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读取XML值的代码(推荐)
2011/01/01 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
php错误级别的设置方法
2013/06/17 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
jquery中动态效果小结
2010/12/16 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现矩阵转置的方法分析
2017/11/24 Python
opencv实现简单人脸识别
2021/02/19 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
python pymysql库的常用操作
2020/10/16 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
优秀毕业生自我鉴定
2014/02/11 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
安踏广告词改编版
2014/03/21 职场文书
志愿者事迹材料
2014/12/26 职场文书
赢在中国观后感
2015/06/02 职场文书
亮剑观后感
2015/06/05 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书