源码先锋

源码先锋

3个步骤了解python的类变量、实例变量!(概念,访问,Output)

admin 47 9

前言:

今天为大家带来的内容是,3个步骤了解python的类变量、实例变量!(概念,访问,Output)具有不错的参考意义,希望能够帮助到大家!

提示:

在本文章中给大家整理的是关于python类变量、实例变量的知识点内容,有需要的朋友们可以学习下。

1、类变量、实例变量概念

类变量:

类变量就是定义在类中,但是在函数体之外的变量。通常不使用self.变量名赋值的变量。类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的。

实例变量:

实例变量是定义在方法中的变量,使用self绑定到实例上的变量,只是对当前实例起作用。

2、访问

类变量

在类的内部和外部类变量都可以直接使用className.类变量的形式访问。但是在类的内部,也可以使用self.类变量来访问,但是这个是用含义就不同了(后面使用代码验证)。

实例变量

在类的内部,实例变量self.实例变量的形式访问;在类的外部使用对象名。实例变量的形式访问。实例变量是绑定到一个实例上的变量,它只是属于这个绑定的实力。而区别类变量的就是类变量是所有的来自用一个类的实例所共享。我们看到这里会有这样的疑问!

如果说类变量对所有来自这个类的所有实例所共享,那么假如我一个实例去改变了这个类变量(假设使用这样的操作object.类变量=value)的值,那么对于其他的实例是不是都是可见的?

答案是否定的,下面验证。

3、Output:
49964144在类中访问类变量:_var=10在类中访问实例变量:_var=__main__.Aobjectat0x0000000002FD239010修改后访问类变量:_var=10修改后访问实例变量_var=__main__.Aobjectat0x0000000002FD23904049963904class_var=20_var=15class_var=20_var=4015401515

从上面运行的结果分析:当使用_var形式访问类变量的之后,如果修改_var的值,可以发现,类变量的值没有变化;不放心我们在修改类变量的值,发现_var的值也没有受到影响。

从最后打印obj2和obj3这两个都来自于一个类的实例中的类变量都是和修改后的类变量一样,表示他们是共享类变量的。

以上我们整理的知识点希望能够帮助到大家