0 python attributes class built-in
>>> import __builtin__
>>> class MyClass:
... def __init__(self):
... self.a = 2
... __builtin__.a = self.a
...
>>> myclass = MyClass()
>>> myclass.a = 4
>>> a = 2
>>> print a
2
>>> print myclass.a
4
Run Code Online (Sandbox Code Playgroud)
我希望a并myclass.a拥有相同的价值.他们为什么不呢?
PS.为什么你会这样使用__builtin__这是另一个问题.
Python没有引用.分配值例如使用= 重新绑定名称.
如果你想要这样的行为,你需要一个可变对象,例如一个包含一个元素的列表:
>>> import __builtin__
>>> class MyClass:
... def __init__(self):
... self.a = [2]
... __builtin__.a = self.a
...
>>> myclass = MyClass()
>>> myclass.a[0] = 4
>>> a[0] = 2
>>> print a
[2]
>>> print myclass.a
[2]
>>>
Run Code Online (Sandbox Code Playgroud)
但是,重新考虑一下,如果你真的想把这样的东西放进去__builtins__.