python – 对象与类变量

这是一个完全理论化的问题.假设以下代码:

>>> class C:
...     a = 10
...     def f(self): self.a = 999
...
>>>
>>> C.a
10
>>> c = C()
>>> c.a
10
>>> c.f()
>>> c.a
999

此时,类变量C.a仍然可以通过对象c访问吗?

最佳答案 是的,虽然c .__ class __.a或type(c).a.这两者在旧式课程中有所不同(希望,那些现在都已经死了 – 但你永远不知道……)有一个< type’instance’的类型()> (和__class__按预期工作),而对于新式类,type()与__class__相同,除非对象覆盖属性访问.

点赞