Python内置函数11——globals()、locals()

本文介绍了Python中的globals()和locals()两个内置函数,它们分别用于获取全局和当前作用域的变量字典。通过实例演示了如何在函数内外使用它们以及注意事项,强调了局部命名空间管理和全局修改的谨慎性。
摘要由CSDN通过智能技术生成

文章目录

概要

  • globals()和locals()都是内置函数,用于获取当前命名空间中的变量。

  • globals()函数返回全局命名空间的字典,包括全局变量、函数和模块。它返回一个表示全局命名空间的字典。你可以使用该函数来查看和修改全局命名空间中的变量。

  • locals()函数返回当前命名空间的字典,包括局部变量、函数和模块。它返回一个表示当前命名空间的字典。如果在全局作用域外调用locals(),它将返回全局命名空间。你可以使用该函数来查看和修改当前命名空间中的变量。

  • 返回值:返回一个字典,包含当前全局作用域或者局部变量的所有变量和它们的值。字典的键是变量名,值是对应变量的值。

基础用法

代码演示:

x = 10
y = 20

def add(a, b):
    z = a + b
    print(locals())

add(x, y)
print(globals())

# 输出结果:
# {'a': 10, 'b': 20, 'z': 30}
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <...>, '__spec__': None, '__annotations__': {}, '__builtins__': <...>, 'x': 10, 'y': 20, 'add': <function add at 0x...>}

你可以看到,在函数内部调用locals()函数时,返回的字典中包含了局部变量a、b和z。而在函数外部调用globals()函数时,返回的字典中包含了全局变量x、y和函数add的定义。

注意:locals()函数返回的字典是对当前命名空间的引用,对其的修改会直接影响到当前命名空间中的变量。而globals()函数返回的字典是对全局命名空间的引用,对其的修改会直接影响到全局命名空间中的变量。因此,在使用这两个函数时,需要谨慎操作,以防止意外修改变量。通常情况下,推荐使用局部命名空间来封装和管理变量,只在必要时才使用globals()和locals()函数。

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莘薪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值