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中的sort方法使用详解
Jul 25 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
在Python程序中实现分布式进程的教程
Apr 28 Python
Python实现读写INI配置文件的方法示例
Jun 09 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python实现五子棋小程序
Jun 18 Python
Python多线程多进程实例对比解析
Mar 12 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
Django自关联实现多级联动查询实例
May 19 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 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高级编程-函数-郑阿奇
2011/07/04 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
调试php程序的简单步骤
2019/10/04 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
Javascript typeof 用法
2008/12/28 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python常用的日期时间处理方法示例
2015/02/08 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
浅析python参数的知识点
2018/12/10 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
JAVA招聘远程笔试题
2015/07/23 面试题
上课打牌的检讨书
2014/02/15 职场文书
勾股定理课后反思
2014/04/26 职场文书
留学推荐信范文
2014/05/10 职场文书
技校毕业生自荐书
2014/05/23 职场文书
课外活动实习计划
2015/01/19 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
Golang的继承模拟实例
2021/06/30 Golang
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记