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 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
python数字图像处理实现直方图与均衡化
May 04 Python
python使用tornado实现简单爬虫
Jul 28 Python
python binascii 进制转换实例
Jun 12 Python
解决python中使用PYQT时中文乱码问题
Jun 17 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
python 操作excel表格的方法
Dec 05 Python
scrapy头部修改的方法详解
Dec 06 Python
Python基础之数据类型知识汇总
May 18 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验证码(支持中文)
2007/02/14 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
带你了解python装饰器
2017/06/15 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
化工专业应届生求职信
2013/11/08 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
2016春节家属慰问信
2015/03/25 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
四则混合运算教学反思
2016/02/23 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python