装饰器
类方法@classmethod
普通类调用方法,先要实例化一个对象,@classmethod的使用,可以在不实例化对象的情况下调用类中的方法。
使用方法:
直接类名.方法名()
@classmethod不需要表示自身对象的self,但第一个参数需要是表示自身类的cls参数,因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码
# 封装
class A(obeject):
@classmethod # 类方法,需要一个参数,表示的类对象
def demo(cls): # cls不需要手动的传参,会自动传参
print('cls = {}'.format(cls))
# 类方法一般都结合类属性来使用
print(cls.type)
# 调用
A.demo(cls)
使用@classmethod有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。