在Python中,类变量和成员变量是两种不同类型的变量。
类变量是在类的定义中声明的变量,它是类的所有实例共享的属性。当类变量的值被修改时,所有实例中的该类变量的值也会被修改。类变量通常用于存储与类相关的常量或默认值。
成员变量(也称为实例变量)是在类的方法中声明的变量,它是每个实例都拥有的属性。每个实例都有自己的成员变量的副本,它们的值可以彼此独立地修改。成员变量通常用于存储实例特定的数据。
下面是一个使用类变量和成员变量的示例:
```python
class MyClass:
class_variable = 10
def __init__(self, instance_variable):
self.instance_variable = instance_variable
obj1 = MyClass(5)
obj2 = MyClass(7)
print(obj1.class_variable) # 输出:10
print(obj2.class_variable) # 输出:10
print(obj1.instance_variable) # 输出:5
print(obj2.instance_variable) # 输出:7
MyClass.class_variable = 20
print(obj1.class_variable) # 输出:20
print(obj2.class_variable) # 输出:20
```
在上面的示例中,`class_variable` 是一个类变量,它的值为 10。`instance_variable` 是一个成员变量,它的值是在每个实例创建时通过构造函数传递的。
当我们修改类变量 `class_variable` 的值时,所有实例中的该类变量的值也会被修改。但是,修改一个实例的成员变量的值不会影响其他实例中的同名成员变量的值。