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