python 中的类方法与静态方法都可以被类或实例访问,其区别总结如下
a、类方法:
在python 2.4以后,通过修饰器实现
@classmethod def test(cls): print cls.__name__
2、类方法需要传入代表本类的cls参数(cls可以为其他单词,但一般习惯使用cls)
3、类方法无法访问实例变量,但可以访问类变量
b、静态方法:
静态方法无需传入self参数,相当于一个独立的方法,与类关系不大,一般很少使用。
c、测试程序如下
#/bin/env python #coding:utf-8 class TestClassMethod(object): METHOD = 'Class variable ' def __init__(self): self.name = 'leon' def test1(self): print '实例方法' print self.name print '' @classmethod def test2(cls): print '类方法' print cls print cls.METHOD print '' @staticmethod def test3(): print '静态方法' print '' if __name__ == '__main__': a = TestClassMethod() a.test1() a.test2() #TestClassMethod.test2() a.test3() #TestClassMethod.test3()