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 相关文章推荐
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
python实现八大排序算法(1)
Sep 14 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
对pandas处理json数据的方法详解
Feb 08 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
django 数据库返回queryset实现封装为字典
May 19 Python
python 获取字典键值对的实现
Nov 12 Python
python操作toml文件的示例代码
Nov 27 Python
python实现控制台输出颜色
Mar 02 Python
写好Python代码的几条重要技巧
May 21 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
Python爬豆瓣电影实例
2018/02/23 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python读取文件名称生成list的方法
2018/04/27 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
使用Python更换外网IP的方法
2018/07/09 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python autoescape标签用法解析
2020/01/17 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
实习教师个人的自我评价
2013/11/08 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
golang连接MySQl使用sqlx库
2022/04/14 Golang