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()比较相关推荐

  1. python globals locals_python – globals(),locals()和vars()之间有什么区别?

    每个都返回一个字典: > globals()总是返回模块命名空间的字典 > locals()总是返回当前命名空间的字典 > vars()返回当前命名空间的字典(如果没有参数调用)或参 ...

  2. python globals locals_python locals globals

    Python有两个内置的函数,locals() 和globals(),它们提供了基于字典的访问局部和全局变量的方式. 首先,是关于名字空间的一个名词解释.是枯燥,但是很重要,所以要耐心些.Python ...

  3. Python函数之globals、locals、global、nonlocal

    Python函数之globals.locals.global.nonlocal 1.内置函数globals locals a = 100 lst = [11, 22, 33]# print(globa ...

  4. python中globals用法_在Python中使用globals()的原因?

    在"声明性python"中很有用. 例如,在下面的globals()和globals()中,是用于定义一系列数据结构的类,这些数据结构随后将被某些程序包用作其输入或配置. 这使您可 ...

  5. 成功解决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 ...

  6. python locals_Python中globals和locals的区别

    展开全部 Python的两e5a48de588b63231313335323631343130323136353331333337373664个内置函数,locals 和globals,它们提供了基于 ...

  7. python中locals函数_python中locals和globals函数

    首先,是关于名字空间的一个名词解释.是枯燥,但是很重要,所以要耐心些.Python使用叫做名字空间的东西来记录变量的轨迹.名字空间只是一个 字典,它的键字就是变量名,字典的值就是那些变量的值.实际上, ...

  8. python locals_Python locals()

    python locals Python locals() function returns a dictionary representing the current local symbol ta ...

  9. Python技巧——巧用globals

    有些许人会知道globals函数.globals函数返回当前命名空间的所有变量.函数.类.模块以及其值的字典.通俗点讲,就是你正在编程的空间有啥东西.通过dir函数,可以了解模块的所有信息的名字,但没 ...

最新文章

  1. 谷歌助力,快速实现 Java 应用容器化
  2. 成都华育php笔试题,一套PHP的笔试题
  3. Redis基数统计——HyperLogLog小内存大用处
  4. php与c语言流程控制语句,小蚂蚁学习C语言(7)——C语言流程控制之if
  5. background 与backgroundcolor区别
  6. stimulsoft入门教程:分层报表(下)
  7. Select显示多级分类列表
  8. .net 初学者。学习笔记 [获取varchar32主键的最大ID值]
  9. 无码编程:无代码软件开发大行其道
  10. 单片机1到十五c语言,手把手教你学单片机的C语言程序设计(十五).pdf
  11. 元气骑士机器人获取方法_元气骑士机器人怎么获得视频(机器人获取方法说明)...
  12. MP3音频编解码芯片 VS1053B-L
  13. MongoDB热备方案
  14. Quality-Estimation2 (翻译质量评价-在BERT模型后面加上Bi-LSTM进行fine-tuning)
  15. Linux下通过ioctl修改IP信息
  16. A特种设备相关管理(电梯)
  17. 关于个人的第二个程序——黑白棋续
  18. 7-39 龟兔赛跑 (20 分)
  19. [附源码]计算机毕业设计Python疫情防控管理系统(程序+源码+LW文档)
  20. 期盼已久全平台支持-开源IM项目OpenIM之uniapp更新

热门文章

  1. vue加载页面实时显示判断是上午下午还是晚上
  2. fastboot 源码分析1
  3. 毫无意义的非均匀性校正----2研究现状
  4. 【C语言】字符串转为十六进制(str_to_hex)
  5. 正点stm32串口中断理解
  6. matlab cell向量匹配向量,matlab – 使用cell2mat将数字矩阵与字符串向量(列标签)连接起来的问题...
  7. 【SCOI 2007】修车
  8. 关于lua中userdata的理解
  9. 告别繁琐滑动,微信小程序一键回到顶部功能
  10. 什么是接口测试,为什么要做接口测试?