是否可以从 Python 的构造函数内部增加/访问类变量?

Gre*_*egH 1 python python-2.7

我想通过计数器跟踪,每次实例化一个类。我试图通过从类的构造函数 ala 增加定义为类变量的计数器来做到这一点:

class Cl:
   cntr = 0
   def __init__(self):
      cntr += 1
Run Code Online (Sandbox Code Playgroud)

但是,当我实例化该类时,我得到一个“UnboundLocalError:分配前引用的局部变量‘cntr’”我假设这是因为构造函数将其视为局部变量。如何从 Python 2.7 中的方法或构造函数内部引用类变量?

Eri*_*mar 5

你只需要通过类调用变量:

class Cl:
    cntr = 0
    def __init__(self):
        Cl.cntr += 1  # <---Like this


print(Cl().cntr)  # prints 1
print(Cl().cntr)  # prints 2
print(Cl().cntr)  # prints 3
Run Code Online (Sandbox Code Playgroud)