【发布时间】:2014-03-27 19:44:31
【问题描述】:
为什么下面的例子表现不同?
示例 1:foo 的行为似乎类似于特定于各种对象的类变量
class A:
foo = 1
a, b = A(), A()
a.foo = 5
print b.foo
----------------
Output: 1
示例 2:foo 似乎表现得像一个对所有对象都相同的静态类变量。也许这种行为与作为指针工作的列表有关。
class A:
foo = []
a, b = A(), A()
a.foo.append(5)
print b.foo
----------------
Output: [5]
示例 3:不起作用
class A:
self.foo = []
a, b = A(), A()
a.foo.append(5)
print b.foo
----------------
Output: Error
【问题讨论】:
标签: python class oop static self