1.概念
全局变量:在模块内,所有函数方法外,class外的变量【在内存中有唯一地址,所有实例共享这一个变量】
局部变量:在函数方法内,class内,没有用self修饰的变量;【又为临时变量,只在函数内部有效,obj不能访问】
实例变量:在class内的方法里面,并且用self修饰的变量;【所有的实例变量和实例方法(有self参数的方法),都是obj的属性,可以通过obj直接访问】
静态变量【类变量】:在class内,但是在class内的所有方法外的变量;【类变量的访问和修改都需要用这种格式:类名.变量名,或者在使用前,使用global关键字声明该变量(因为python在函数中会屏蔽类变量,如果不显式指明,这个变量只会当做与类变量同名的局部变量,从而出错)】
2.类变量的访问
python的idle中操作可以发现,类和对象的属性都存放在一个字典中[可以用字典扩充的方式简洁的扩充类和对象的属性],可以通过__dict__查看,类自身拥有所有代码提到的属性和方法以及默认的属性方法,但是变量却不是,变量在刚声明之后,通过__dict__查看是没有属性的,即没有属于这个对象的特有属性,因为python的属性访问机制是一个对象的属性查找顺序遵循首先查找实例对象自己,然后是类,接着是类的父类