在学习类变量的过程的中遇到以下几个问题:
- 类变量的调用方法有?
- 他们之间有什么区别?
先看结论再看代码:
一、调用方法
在实例方法中:
1.“类名.类变量”调用
2.“self.类变量”调用在类方法中:
1.“类名.类变量”调用
2.“cls.类变量”调用
二、区别
首先得明白类变量和实例变量各存在一个副本
意思是你用实例方法调用类变量实际上是在实例变量的副本上复制了类变量,即创建了一个新变量(谢谢大佬指正),这也解释了通过self.类变量改变类变量,
类变量不受影响
而调用类方法或调用类变量是可以改变类变量的
下面贴代码(#后是运行结果)
class t:
e =12
def add(self):
self.e = self.e + 12
print(self.e) #24
@classmethod
def power(cls,x):
cls.e = t.e*x
T =t()
T.add()
print(t.e) #12
T.power(2)
print(t.e) #24
ps:文章写得不好的地方,欢迎各位大佬指正
版权声明:本文为weixin_43012036原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。