Python是一种通用且广泛使用的编程语言,在类中使用两种主要类型的变量:类变量和实例变量。理解这两者之间的差异对于Python中有效的面向对象编程至关重要。
1.类变量
类变量在类的所有实例之间共享。它们是在类内定义的,但在任何方法之外。类变量通常用于类的每个实例都应相同的属性。
例子:

在此示例中,Kingdom是Animal类的类变量。它由Animal的所有实例共享。无论创建多少动物实例,kingdom都将永远是“Animal”。
2.实例变量
实例变量由类的实例拥有。每个对象都有自己的一组实例变量,并且它们不在实例之间共享。实例变量在方法内定义,最常见的是在__init__方法内定义。
例子:

这里,名称和物种是实例变量。每个动物实例(狗和猫)都有自己的名称和种类。在一种情况下更改名称或物种不会影响其他情况。
3.使用上的差异
修改:修改类变量会影响所有实例,而修改实例变量仅影响该特定实例。
访问:可以使用类名本身或通过实例来访问类变量。实例变量只能通过实例访问。
4.实际例子
让我们看看这两个变量的作用:

在这个实际例子中,修改dog.name并不影响cat.name,体现了实例变量的独立性。另一方面,kingdom通过和dog进行访问cat会产生相同的结果,强调了类变量的共享性质。
理解Python中的类和实例变量对于设计健壮且高效的面向对象程序至关重要。类变量非常适合所有实例共享的属性,而实例变量非常适合每个实例独有的属性。“Animal”类示例恰当地演示了如何使用这些变量以及它们的行为有何不同。