Python classmethod 修饰符

classmethod 修饰的方法是类方法,不需要实例化便可以调用,直接类名.方法名()来调用。

相对应的是实例方法,需要实例化后才可以调用的方法。

class A(object):

    # 属性默认为类属性(可以给直接被类本身调用)
    num = "类属性"

    # 实例化方法(必须实例化类之后才能被调用)
    def func1(self): # self : 表示实例化类后的地址id
        print("func1")
        print(self)

    # 类方法(不需要实例化类就可以被类本身调用)
    @classmethod
    def func2(cls):  # cls : 表示没用被实例化的类本身
        print("func2")
        print(cls)
        print(cls.num)
        cls().func1()

# A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
A.func2()  # 直接调用
原文地址:https://www.cnblogs.com/Uni-Hoang/p/13288286.html