標籤:python globals locals
global()返回全域範圍的屬性字典, locals()返回局部範圍的屬性字典.當locals()在模組頂層的位置時返回的值與global()相同.
執行個體
#!/usr/bin/python#coding=utf-8class Dog(object): x = 11 y = 12 def __init__(self): m = 44 n = 33 def eat(self): k = 11 h = 22 ‘‘‘ 列印 {‘h‘: 22, ‘k‘: 11, ‘self‘: <__main__.Dog object at 0x7fc2985b8e10>} ‘‘‘ print locals()def func(): x = 1 y = 2 def wrap(): pass ‘‘‘ 列印 func local is: {‘wrap‘: <function wrap at 0x7fc2985be938>, ‘y‘: 2, ‘x‘: 1} ‘‘‘ print ‘func local is: %s‘ % locals()x = 1y = 2func()‘‘‘兩者都列印{‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__file__‘: ‘t.py‘, ‘Dog‘: <class ‘__main__.Dog‘>, ‘__package__‘: None, ‘func‘: <function func at 0x7fc2985be7d0>, ‘x‘: 1, ‘y‘: 2, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None}‘‘‘print ‘local is: %s‘ % locals()print ‘globals is: %s‘ %globals()dog = Dog()dog.eat()
輸出
func local is: {‘wrap‘: <function wrap at 0x7febea277938>, ‘y‘: 2, ‘x‘: 1}local is: {‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__file__‘: ‘t.py‘, ‘Dog‘: <class ‘__main__.Dog‘>, ‘__package__‘: None, ‘func‘: <function func at 0x7febea2777d0>, ‘x‘: 1, ‘y‘: 2, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None}globals is: {‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__file__‘: ‘t.py‘, ‘Dog‘: <class ‘__main__.Dog‘>, ‘__package__‘: None, ‘func‘: <function func at 0x7febea2777d0>, ‘x‘: 1, ‘y‘: 2, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None}{‘h‘: 22, ‘k‘: 11, ‘self‘: <__main__.Dog object at 0x7febea271e10>}
python之globals()和locals()