python globals locals_Python globals()和locals()比较
Python的两个内置函数,globals()和locals() ,它们提供了基于字典的访问局部和全局变量的方式。
globals()是可写的,即,可修改该字典中的键值,可新增和删除键值对。
而locals()是不可修改字典中已存在的键值的,也不能pop移除键值对,但是可以新增键值对。
Demo:
a = 1 # 定义一个全局变量a
def demo():
x = 100 # 定义一个局部变量x
global b
b = 2 # 定义一个全局变量b,因为在函数内,只有调用了该函数才有变量b
print(globals())
print(locals())
globals()['a'] = 'modified a' # 修改函数外的全局变量a,成功
globals()['b'] = 'modified b' # 修改函数中定义的全局变量b,成功
globals()['c'] = 'new c' # 新增一个全局变量c,成功
locals()['x'] = 'modified x' # 修改函数内的局部变量x,结果失败了
locals()['y'] = 'new y' # 新增一个函数内的局部变量y,成功
globals().pop('c') # 尝试移除全局变量c,成功
locals().pop('x') # 尝试移除局部变量x,失败了
print(globals())
print(locals())
def print_b():
try:
print(b)
except NameError as e:
print(e)
def print_x():
try:
print(x)
except NameError as e:
print(e)
print_b() # b虽然是全局变量,但是是在函数demo内定义的,在该函数调用前b是没有的,所以not defined
demo() # 调用demo函数,此时有了全局变量b
print_x() # x局部变量,在外访问不到
print_b() # 此时打印全局变量b正常,并且是修改后的值
# 打印结果字典中省略了内置的变量和定义的方法,方便比较
name 'b' is not defined
{'a': 1, 'b': 2}# globals()
{'x': 100}# locals()
{'a': 'modified a', 'b': 'modified b'}# globals()
{'y': 'new y', 'x': 100}# locals()
name 'x' is not defined
modified b
python globals locals_Python globals()和locals()比较相关推荐
- python globals locals_python – globals(),locals()和vars()之间有什么区别?
每个都返回一个字典: > globals()总是返回模块命名空间的字典 > locals()总是返回当前命名空间的字典 > vars()返回当前命名空间的字典(如果没有参数调用)或参 ...
- python globals locals_python locals globals
Python有两个内置的函数,locals() 和globals(),它们提供了基于字典的访问局部和全局变量的方式. 首先,是关于名字空间的一个名词解释.是枯燥,但是很重要,所以要耐心些.Python ...
- Python函数之globals、locals、global、nonlocal
Python函数之globals.locals.global.nonlocal 1.内置函数globals locals a = 100 lst = [11, 22, 33]# print(globa ...
- python中globals用法_在Python中使用globals()的原因?
在"声明性python"中很有用. 例如,在下面的globals()和globals()中,是用于定义一系列数据结构的类,这些数据结构随后将被某些程序包用作其输入或配置. 这使您可 ...
- 成功解决tensorflow\contrib\learn\python\learn\datasets\base._internal_retry.locals.wrap.locals.wrapp
成功解决tensorflow\contrib\learn\python\learn\datasets\base._internal_retry.<locals>.wrap.<loca ...
- python locals_Python中globals和locals的区别
展开全部 Python的两e5a48de588b63231313335323631343130323136353331333337373664个内置函数,locals 和globals,它们提供了基于 ...
- python中locals函数_python中locals和globals函数
首先,是关于名字空间的一个名词解释.是枯燥,但是很重要,所以要耐心些.Python使用叫做名字空间的东西来记录变量的轨迹.名字空间只是一个 字典,它的键字就是变量名,字典的值就是那些变量的值.实际上, ...
- python locals_Python locals()
python locals Python locals() function returns a dictionary representing the current local symbol ta ...
- Python技巧——巧用globals
有些许人会知道globals函数.globals函数返回当前命名空间的所有变量.函数.类.模块以及其值的字典.通俗点讲,就是你正在编程的空间有啥东西.通过dir函数,可以了解模块的所有信息的名字,但没 ...
最新文章
- 谷歌助力,快速实现 Java 应用容器化
- 成都华育php笔试题,一套PHP的笔试题
- Redis基数统计——HyperLogLog小内存大用处
- php与c语言流程控制语句,小蚂蚁学习C语言(7)——C语言流程控制之if
- background 与backgroundcolor区别
- stimulsoft入门教程:分层报表(下)
- Select显示多级分类列表
- .net 初学者。学习笔记 [获取varchar32主键的最大ID值]
- 无码编程:无代码软件开发大行其道
- 单片机1到十五c语言,手把手教你学单片机的C语言程序设计(十五).pdf
- 元气骑士机器人获取方法_元气骑士机器人怎么获得视频(机器人获取方法说明)...
- MP3音频编解码芯片 VS1053B-L
- MongoDB热备方案
- Quality-Estimation2 (翻译质量评价-在BERT模型后面加上Bi-LSTM进行fine-tuning)
- Linux下通过ioctl修改IP信息
- A特种设备相关管理(电梯)
- 关于个人的第二个程序——黑白棋续
- 7-39 龟兔赛跑 (20 分)
- [附源码]计算机毕业设计Python疫情防控管理系统(程序+源码+LW文档)
- 期盼已久全平台支持-开源IM项目OpenIM之uniapp更新