类方法有额外的隐式的类变量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()被调用