先看一段代码
class Test(object): ID = 1 def __init__(self): pass def prtID(self): print(self.ID) def classplusOne(self): Test.ID += 1 def ObjplusOne(self): self.ID += 1 t1 = Test() t2 = Test() t1.classplusOne()这里会发现t1对ID进行了修改却影响了t2的ID, 这就说明ID属于Test类,而非它的对象,换句话说这个属性是全体Test实例共用的。这是因为self的意思同c++的this指针,它代表了类当前的实例,所以加了self的属性就是类实例的属性,不加就是类的属性,这同c++中静态类变量的含义是一样的。