关于python中的__dict__和global声明的关系
我这里有个例子,搞不清楚怎么回事
class TestCaseBase:
#global a
a = 1
def func_1(self):
a = 1
print a
print TestCaseBase.__dict__
打印出来的内容是:
{'a': 1, '__module__': '__main__', 'func_1': <function func_1 at 0x00E87170>, '__doc__': None}
而
class TestCaseBase:
global a
a = 1
def func_1(self):
a = 1
print a
print TestCaseBase.__dict__
打印出来的内容却是:
{'__module__': '__main__', 'func_1': <function func_1 at 0x00D86170>, '__doc__': None}
为什么在a被声明成global的时候在类的__dict__属性中没有呢?
[解决办法]
[解决办法]
楼上正解。既然是global,那就不在类中了,只是在类中能够使用它而已
[解决办法]
声明global后变量就跑到模块中去了,不局限于这个类