清除Python中的类变量

时间:2019-03-21 20:11:02

标签: python class

我有一个类,并创建了它的实例ab。我认为两个实例都指向相同的地址。

例如,

class Foo:
    counter = 0
    def increment():
        counter += 1

a = Foo()
b = Foo()
for i in range(10):
    a.increment()
    b.increment()
    aa = a.counter
    bb = b.counter
    print(aa)
    print(bb)

我希望有aa = 10bb = 10。但是,此时bb = 20。我想念什么?

1 个答案:

答案 0 :(得分:1)

如果您打算使计数器针对每个实例,则应将其设为实例变量,并使用__init__方法对其进行初始化:

class Foo:
    def __init__(self):
        self.counter = 0
    def increment(self):
        self.counter += 1