继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python 的内置函数 globals

2882716
关注TA
已关注
手记 70
粉丝 0
获赞 0

Python 的内置函数 globals() 是一个非常有用的工具,它返回一个表示当前全局符号表的字典。这个字典包含了当前模块中定义的所有全局变量、函数、类等对象的名称和对应值的映射关系。

详细说明

  1. 功能特性

    • globals() 返回的是一个字典对象,其中键(key)是变量名的字符串形式,值(value)是对应的变量值
    • 该字典会实时反映当前全局命名空间的变更
    • 在模块级别调用时,会返回该模块的全局命名空间
    • 在函数内部调用时,仍然返回包含该函数的模块的全局命名空间
  2. 典型应用场景

    • 动态访问和操作全局变量
    • 调试时检查全局命名空间内容
    • 实现某些元编程功能
    • 框架开发中需要动态处理全局变量时
  3. 使用示例

# 定义一些全局变量
x = 10
y = "hello"

def my_func():
    z = 30  # 这是局部变量
    print(globals())  # 仍然显示模块的全局变量

# 查看全局命名空间
print(globals())

# 输出会包含:
# {'__name__': '__main__', '__doc__': None, 
#  'x': 10, 'y': 'hello', 'my_func': <function my_func at 0x...>, ...}
  1. 注意事项

    • 直接修改返回的字典会影响实际的全局变量
    • locals() 不同,globals() 在函数内部调用时不会返回局部变量
    • 在大多数情况下,直接使用变量名比通过 globals() 访问更可取
  2. 与相关函数的对比

    • locals(): 返回局部命名空间的字典
    • vars(): 不带参数时与 locals() 相同,带参数时返回对象的 __dict__
    • dir(): 返回当前作用域中的名称列表,而非字典

这个函数在需要动态处理或检查全局变量时特别有用,但应谨慎使用以避免代码变得难以理解和维护。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP