@staticmethod 类静态方法:类下单独的函数,没有self参数,并且可以在类不进行实例化的情况下调用,可以不传递任何参数,不需要实例化,直接【类名.方法名()】,可通过类对象和类对象实例访问
@classmethod 类方法:接受的第一个参数不是self(类实例的指针),而是cls(当前类的具体类型),只能访问类变量,不能访问实例变量,不需要实例化,直接【类名.方法名()】,可通过类对象和类对象实例访问
@property 属性方法:将一个类方法转变成一个类属性,只读属性,并赋值
class testClass(object):name ='玩具'def __init__(self,name):self.name = namedef objPrint(self,xy):print('%s 是实例化方法:%s'%(self.name,xy))@classmethoddef classPrint(cls,xy):print('%s 是类方法,只能调类变量:%s'% (cls,xy))print('%s 是类方法,只能调类变量:%s'% (cls.name,xy))@staticmethoddef staticPrint(xy):print('静态方法:%s'%xy)obj = testClass('食物')#实例化类
obj.objPrint('方便面')
testClass.classPrint('火腿肠')
testClass.staticPrint('面包')
运行结果食物 是实例化方法:方便面
<class '__main__.testClass'> 是类方法,只能调类变量:火腿肠
玩具 是类方法,只能调类变量:火腿肠
静态方法:面包