3 回答
TA贡献1909条经验 获得超7个赞
A1:参数self代表实例本身,例如: A=FooClass(),那么self就代表A,类函数中,self是必需的
A2:__class__获得已知对象的类,任何对象都有这个属性,__name__取得类名
A3:version是类成员变量,实例化后是实例变量,类函数获得实例变量需要带上实例本身,这个其实我也很难解释得很透彻,可以大概讲一下
version = 0.1 这里在实例化之前就已经生成了
而__init__(self,nm='Louis wu'):这里的nm变量是在实例化的时候生成的
在类方法中访问version和nm的方式是一样的,self.version和self.nm
但是version在类没有实例化的情况下也是可以访问的,因为它在实例化之前就已经声明了
你可以尝试
print FooClass.version 是可以得到version的值的
但是FooClass.nm是不可以的,必须是实例化之后才生成这个变量,FooClass().nm就可以访问到了
TA贡献1946条经验 获得超4个赞
1.Python是一门动态语言,任何实体都可以动态地添加或删除属性。
2.一个类定义了一个作用域。
3.类实例也引入了一个作用域,这与相应类定义的作用域不同。
4.在类实例中查找属性的时候,首先在实例自己的作用域中查找,如果没有找到,则再在类定义的作用域中查找。
5.在对类实例属性进行赋值的时候,实际上会在类实例定义的作用域中添加一个属性(如果还不存在的话),并不会影响到相应类中定义的同名属性。
添加回答
举报