【Python】类的属性和方法的参数加不加self的区别

先看一段代码

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++中静态类变量的含义是一样的。


 
 

猜你喜欢

转载自blog.csdn.net/whueratsjtuer/article/details/79121090
今日推荐