类方法,静态方法

class lianxi():
aa='this is text' #类属性
def test(self,name): #普通方法
print(self.aa)
@classmethod
def lei(cls): #类方法
print(cls.aa)
@staticmethod
def st(aa): #静态方法,不可以访问类属性
print(aa)
a=lianxi()
a.aa='huohai' #实例属性值
a.test('huahua') #huohai
#lianxi.test('huahua') #报错,缺少self,lianxi.test不报错 #类不可以调用普通方法
a.lei() #this is text
lianxi.lei() #this is text
a.st('danta') #danta
lianxi.st('danta') #danta

实例方法(普通)方法应该由实例调用,类不能调用;且随着实例属性得改变而改变;

类方法可以由类调用,因为传入cls,也可以由实例来调用;不随实例属性变化,与类属性保持一致;

静态方法类和实例都能调用;#不可以访问类属性,故直接输出传入方法的值;

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/12051940.html