解释 Python 类变量和实例变量?

在Python中,类变量和实例变量是两种不同类型的变量,它们在类和实例之间有不同的作用和行为。

实例变量

实例变量是类的每一个实例所特有的。每个实例都有自己的一份实例变量的拷贝,这些拷贝之间相互独立,互不干扰。实例变量通常在创建实例时通过参数传递,或者在类的方法中定义。

示例:

class Person:
    def __init__(self, name):
        self.name = name  # 实例变量

# 创建两个不同实例
p1 = Person("Alice")
p2 = Person("Bob")

# 修改实例变量不会影响其他实例
p1.name = "Charlie"
print(p1.name)  # 输出: Charlie
print(p2.name)  # 输出: Bob

类变量

类变量是类所有实例共享的变量。修改类变量的值会影响到所有的实例。类变量通常在类的方法中定义,并且通常在方法中使用 self 参数引用。类变量通常用于存储与类相关的信息或方法,而不是与特定实例相关的信息。

示例:

class Person:
    count = 0  # 类变量

    def __init__(self, name):
        self.name = name  # 实例变量
        Person.count += 1  # 修改类变量会影响所有实例

# 创建两个不同实例
p1 = Person("Alice")
p2 = Person("Bob")

print(Person.count)  # 输出: 2,因为每个实例都增加了计数器

总结:实例变量存储的是每个实例特有的数据,而类变量存储的是与所有实例共享的数据。修改实例变量不会影响其他实例,而修改类变量会影响所有实例。

发表评论

后才能评论