ITEEDU

classmethod类方法

类方法有额外的隐式的类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。

class A(object):
    @classmethod
    def cm(cls):
        print '类方法cm(cls)调用者:', cls.__name__
    @staticmethod
    def sm():
        print '静态方法sm()被调用'

class B(A):
    pass

A.cm()
B.cm()

A.sm()
B.sm()

输出:

类方法cm(cls)调用者: A
类方法cm(cls)调用者: B
静态方法sm()被调用
静态方法sm()被调用