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调用windows api锁定计算机示例
Apr 17 Python
python批量修改文件名的实现代码
Sep 01 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
Python入门_条件控制(详解)
May 16 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
Python pip 常用命令汇总
Oct 19 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
python blinker 信号库
May 04 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处理json时中文问题的解决方法
2011/04/12 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
索趣科技的答案
2007/02/07 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
python实现大文件分割与合并
2019/07/22 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
什么是会话Bean
2015/05/14 面试题
实习自我鉴定
2013/12/15 职场文书
工作证明格式范文
2015/06/15 职场文书