Python修仙之路 —— 类变量在实例方法和类方法的调用方式

在学习类变量的过程的中遇到以下几个问题:

  • 类变量的调用方法有?
  • 他们之间有什么区别?

先看结论再看代码:
一、调用方法

  • 在实例方法中:
    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:文章写得不好的地方,欢迎各位大佬指正

你可能感兴趣的:(Python修仙之路 —— 类变量在实例方法和类方法的调用方式)