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之有容乃大的list(1)
Sep 14 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python下载网络小说实例代码
Feb 03 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
基于python二叉树的构造和打印例子
Aug 09 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
利用python进行文件操作
Dec 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
pygame实现成语填空游戏
2019/10/29 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
关于递归的一道.NET面试题
2013/05/12 面试题
我为自己代言广告词
2014/03/18 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
2014年纪检工作总结
2014/11/12 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
如何使用python包中的sched事件调度器
2022/04/30 Python