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装饰器使用实例:验证参数合法性
Jun 24 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
Python 通过URL打开图片实例详解
Jun 01 Python
深入理解Python中range和xrange的区别
Nov 26 Python
对numpy中轴与维度的理解
Apr 18 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
python实现二分查找算法
Sep 18 Python
python实现一个简单RPC框架的示例
Oct 28 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实现读取和编写XML DOM代码
2010/04/07 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
网页自动跳转代码收集
2009/09/27 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python实现的简单万年历例子分享
2014/04/25 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Django框架多表查询实例分析
2018/07/04 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
销售员自我评价怎么写
2013/09/19 职场文书
服装设计专业毕业生推荐信
2013/11/09 职场文书
邮政员工辞职信
2014/01/16 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
诚信考试承诺书
2014/03/27 职场文书
专业技术职务聘任书
2014/03/29 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
车队安全员岗位职责
2015/02/15 职场文书
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL