python 中的类与实例方法、类方法、静态方法
其他编程语言中,类方法就是类的静态方法,叫法不同而已;但是python中,这两个是不同概念的。下面通过具体的例子来说明
class Demo : instance = None age = 12 name = "liu" #初始化对象时会调用这个方法,类似C++中的构造函数 def __init__(self,age,name): print("__init__") self.age = age self.name = name #实例化对象时调用,可以通过其参数看出,里面有cls参数 def __new__(cls, *args, **kwargs): print("__new__") if cls.instance is None: cls.instance = super().__new__(cls) return cls.instance #魔术方法 def __call__(self): print("__call__") #打印一个对象时,会调用该方法 def __str__(self): return self.name + " " + str(self.age) #类似C++的析构函数,对象生命周期结束,销毁时调用 def __del__(self): print("__del__") #实例方法 def method1(self): print("method1" + self.name) #静态方法,没有任何参数,访问类的成员变量时,只能是用类名.变量名 @staticmethod def method2(): print("method2" + Demo.name) #类方法,可以看出,类方法的第一个参数是cls,也就是类本身 @classmethod def method3(cls):