解释 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,因为每个实例都增加了计数器
总结:实例变量存储的是每个实例特有的数据,而类变量存储的是与所有实例共享的数据。修改实例变量不会影响其他实例,而修改类变量会影响所有实例。