探索 globals()、locals() 和 vars() 的细微差别
Python 提供了三个内省函数,可以深入了解当前命名空间:globals()、locals() 和 vars()。每个都返回一个包含特定信息的字典。
globals()
globals() 始终返回当前模块名称空间的字典。它提供对模块内所有全局定义名称的访问。
locals()
locals() 是动态的,其行为取决于范围。
例如,在函数中:
def example(): x = 1 l = locals() l['x'] = 3 print(x) # Outputs 1, not 3
例如:
class Test: a = 'one' huh = locals() b = 'two' huh['c'] = 'three' print(huh) # Outputs {'a': 'one', 'b': 'two', 'c': 'three', 'huh': {...}}
vars()
vars() 接受一个对象作为其参数并返回其 dict 属性。通常,对象的 dict 存储其属性数据。因此,向 vars() 提供对象可以访问其属性。
class Test: a = 'one' b = 'two' huh = vars(self) c = 'three' huh['d'] = 'four'
在此示例中,vars(self) 返回 Test 实例的 dict 属性,允许访问它的属性如“a”、“b”和“c”。
以上是Python 中的 globals()、locals() 和 vars() 有什么不同?的详细内容。更多信息请关注PHP中文网其他相关文章!