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