类方法和静态方法
class Person(object): __slots__ = ("name","age") # 类属性 num = 0 # 构造函数 def __init__(self,name,age): # 实例属性 self.name = name self.age = age # 实例函数:形参列表的第一个参数必须为self,表示当前对象 def show(self): print("show",self) # 类函数:形参列表的第一个参数为cls,表示当前类 # 使用@classmethod装饰器修饰一个函数,该函数被称为类函数 # cls和self类似,都不是关键字,可以是任意的标识符 @classmethod def func1(cls): print("func11", cls) # cls就相当于是当前类Person,所以可以通过cls创建对象 c = cls("bbb",6) # 在类函数中调用实例 函数,必须先通过cls创建对象,然后再调用 # c.show() # 静态函数 @staticmethod def func2(): print("func~~2222") p = Person("aaa",5) # 实例函数只能通过对象调用 p.show() # 类函数可以通过类名或者对象调用 p.func1() Person.func1() # 静态函数可以通过类名或者对象调用 p.func2() Person.func2() ''' show <__main__.Person object at 0x000002C03C531518> func11 <class '__main__.Person'> func11 <class '__main__.Person'> func~~2222 func~~2222 ''' # 如果需要在函数中创建当前类的对象,则选用类函数 # 如果需要封装一个工具类,建议使用类函数或者静态函数