- 类体中、所有函数之外:此范围内定义的变量,称为类属性或类变量;类属性的调用方式有 2 种,既可以使用类名直接调用,也可以使用类的实例化对象调用。需要注意的是:因为类变量为所有实例化对象共有,通过类名修改类变量的值,会影响所有的实例化对象;而不能通过类对象修改类属性。
- 类体中,所有函数内部:以“self.变量名”的方式定义的变量,称为实例属性或实例变量;实例变量指的是在任意类方法内部,以“self.变量名”的方式定义的变量,其特点是只作用于调用方法的对象。另外,实例变量只能通过对象名访问,无法通过类名访问。
- 类体中,所有函数内部:以“变量名=变量值”的方式定义的变量,称为局部变量。除了实例变量,类方法中还可以定义局部变量。和前者不同,局部变量直接以“变量名=值”的方式进行定义。通常情况下,定义局部变量是为了所在类方法功能的实现。需要注意的一点是,局部变量只能用于所在函数中,函数执行完成后,局部变量也会被销毁。
注意:类中,实例变量和类变量可以同名,但这种情况下使用类对象将无法调用类变量,它会首选实例变量,这也是不推荐“类变量使用对象名调用”的原因。