一般来说,实例变量用于每个实例的唯一数据,而类变量用于类的所有实例共享的属性和方法,示例如下:
class Dog:
kind = 'canine'
def __init__(self, name):
self.name = name
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.kind正如名称和对象中已讨论过的,共享数据可能在涉及mutable对象例如列表和字典的时候导致令人惊讶的结果。例如以下代码中的tricks列表不应该被用作类变量,因为所有的Dog实例将只共享一个单独的列表。