python 类方法和静态方法
一,类方法
通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量
class Count: age = 18 def __init__(self,name): self.name = name @classmethod def run(cls): print(cls.age) c = Count('张伟') c.run()
打印结果是18
class Count: age = 18 def __init__(self,name): self.name = name @classmethod def run(cls): print(self.name) c = Count('张伟') c.run()
NameError: name 'self' is not defined
类访问实例变量self.name会报错
二,静态方法
在类中的方法前面通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法
特性:静态方法是不能访问实例变量和类变量的
class Count: age = 18 def __init__(self,name): self.name = name @staticmethod def run():
#当普通方法用 print(Count.age) #不报错,可以访问 print(self.age) #不能访问,报错 print(self.name) #不能访问,报错 c = Count('张伟') c.run()

浙公网安备 33010602011771号