python中的类方法与静态方法
面相对象程序设计中,类方法和静态方法是经常用到的两个术语。
逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。
类方法:
在python中.类方法 @classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。
类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。
class Test(): def __init__(self,name): self.a = name @classmethod #类方法的装饰器,用于修饰这个方法 def func(cls):#cls 代表的是class print(‘这是一个类方法‘) if __name__ == ‘__main__‘: Test.func() #类调用 a = Test("小王") a.func() #类的实例进行调用
注意 :a, 类方法不仅可以通过实例化对象调用还可以通过类名称直接调用
b, 不能调用构造函数(实例方法)中的属性变量
c,可以调用类变量
静态方法:
静态方法是类中的函数,不需要实例。静态方法主要是用来存放逻辑性的代码,主要是一些逻辑属于类,但是和类本身没有交互,
即在静态方法中,不会涉及到类中的方法和属性的操作。
class Test(): def __init__(self,name): self.a = name @staticmethod #装饰器,表示他是一个静态方法 def func(): print("这是一个静态方法") if __name__ == ‘__main__‘: Test.func() #类调用 a = Test("小王") a.func() #类的实例进行调用
注意:
a,静态方法中没有默认的形
b,静态方法需要通过装饰@staticmethod修饰
c, 静态方法不仅可以通过实例化对象调用还可以通过类名称直接调用
d,不能调用构造函数(实例方法)中的属性变量
e, 不可以调用类变量