Python中的“类变量”和“成员变量”的区别——易混淆

liftword3周前 (12-08)技术文章12

在Python的面向对象编程中,类变量和成员变量(也被称为实例变量)是两种不同类型的数据。

1、类变量(Class Variable):类变量是定义在类中,但在任何方法之外的变量。类变量在该类的所有实例之间共享。这意味着如果你更改了类变量,那么它会在所有该类的实例中改变。

例如:

class MyClass:
  class_variable = "I'm a class variable"
instance1 = MyClass()
instance2 = MyClass()
print(instance1.class_variable) # 输出 "I'm a class variable"
print(instance2.class_variable) # 输出 "I'm a class variable"
MyClass.class_variable = "I'm a modified class variable"
print(instance1.class_variable) # 输出 "I'm a modified class variable"
print(instance2.class_variable) # 输出 "I'm a modified class variable"

在这个例子中,class_variable 是一个类变量,它在 MyClass 的所有实例 instance1 和 instance2 之间共享。

2、成员变量(Instance Variable):成员变量是定义在类的方法中的变量,它属于对象的状态。每个对象或实例都有自己的成员变量。这意味着如果你更改了一个对象的成员变量,它不会影响其他对象的相同成员变量。

例如:

class MyClass:
  def __init__(self):
    self.instance_variable = "I'm an instance variable"
instance1 = MyClass()
instance2 = MyClass()
print(instance1.instance_variable) # 输出 "I'm an instance variable"
print(instance2.instance_variable) # 输出 "I'm an instance variable"
instance1.instance_variable = "I'm a modified instance variable"
print(instance1.instance_variable) # 输出 "I'm a modified instance variable"
print(instance2.instance_variable) # 输出 "I'm an instance variable"

在这个例子中,instance_variable 是一个成员变量,每个 MyClass 的实例 instance1 和 instance2 都有自己的 instance_variable。

总的来说,类变量在所有实例间共享,而成员变量是每个实例特有的

相关文章

python常用的内置模块有哪些?这20个模块算是高频使用的吗?(上)

1.os1.1 作用主要是和操作系统相关的一个模块,如可以进行文件/目录的创建、删除等1.2 导入import os1.3 常用方法及说明常用方法说明os.getcwd()获取当前路径os.chdir...