Python类变量和实例变量的区别

分类:知识百科 日期: 点击:0

在Python中,类变量和实例变量都是对象属性。类变量是定义在类中但不是定义在任何方法中的变量。它是类的所有对象共享的属性。而实例变量是定义在方法中或构造函数中的变量,每个对象都有自己的一份副本。

下面我们来看一个示例代码:

class MyClass:
    class_variable = 0
    
    def __init__(self, instance_variable):
        self.instance_variable = instance_variable

在这个示例中,class_variable是一个类变量,instance_variable是一个实例变量。

让我们来看一些Python解释器中的交互式会话:

>>> obj1 = MyClass(10)
>>> obj2 = MyClass(20)

>>> print(obj1.class_variable)   # 访问类变量
0
>>> print(obj2.class_variable)   # 访问类变量
0

>>> print(obj1.instance_variable) # 访问实例变量
10
>>> print(obj2.instance_variable) # 访问实例变量
20

>>> MyClass.class_variable = 30   # 修改类变量
>>> print(obj1.class_variable)   # 访问类变量
30
>>> print(obj2.class_variable)   # 访问类变量
30

>>> obj1.instance_variable = 40   # 修改实例变量
>>> print(obj1.instance_variable) # 访问实例变量
40
>>> print(obj2.instance_variable) # 访问实例变量
20

从上面的交互式会话中可以看到,类变量是共享的,当我们修改类变量时,所有对象都受影响。而实例变量是在每个对象中独立维护的,修改实例变量只会影响到该对象本身。

类变量和实例变量有各自的用途。如果你想让所有对象共享一个属性,那么使用类变量;如果你想让每个对象都有自己的属性,则使用实例变量。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。