Python基于locals返回作用域字典
英文文档:
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
>>>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
django+uwsgi的部署实在是太蛋疼了.网上已有的教程似乎有新版本的兼容问题。最后跑到uwsgi官网上找的教程终于跑通了.. 不过官网的教程似乎有引导教学性质,部署的时候就显得很绕弯路,在这里记录下来精简内容2014-11-11
浅析python,PyCharm,Anaconda三者之间的关系
Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言。这篇文章主要介绍了浅析python,PyCharm,Anaconda三者之间的关系,需要的朋友可以参考下2019-11-11
flask 使用 flask_apscheduler 做定时循环任务的实现
这篇文章主要介绍了flask 使用 flask_apscheduler 做定时循环任务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12


最新评论