python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马?python中实现静态方法和类方法都是依赖于python的修饰器来实现的。
class TestClassMethod(object): METHOD = 'method' # 静态变量(类变量) def __init__(self): self.name = 'leon' def test1(self): print("test1:对象方法") print(self) print(self.name) # 可以访问实例变量name,也可以访问静态变量METHOD print("Method=", TestClassMethod.METHOD) @classmethod def test2(cls): print("test2: 类方法无法访问实例变量name,可以访问静态变量METHOD") print(cls) print("Method=", TestClassMethod.METHOD) # print(self.name) # 出错 print('----------------') @staticmethod def test3(): print('test3:静态方法无法访问实例变量name,可以访问静态变量METHOD') print("Method=", TestClassMethod.METHOD)a = TestClassMethod()a.test1() # 静态方法和类成员方法都可以被类或实例访问a.test2()a.test3()TestClassMethod.test3()
联系客服