实例属性和类属性
1.在编写程序的时候,一定要避免实例属性和类属性使用同样的名字,否则实例属性将屏蔽掉类属性。直到删除了实例属性后,再使用相同的名称,访问到的才将是类属性。
2.实例绑定属性:通过实例变量或者通过self变量
3.给类本身绑定属性:可以直接在class中定义属性,即类属性
例子如下(摘自教程,理解这个就基本上理解了!!)
>>>classStudent(object):
...name ='Student'
...
>>>s = Student() # 创建实例s
>>>print(s.name) # 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性Student
>>>print(Student.name) # 打印类的name属性Student
>>>s.name ='Michael' # 给实例绑定name属性
>>>print(s.name) # 由于实例属性优先级比类属性高,因此,它会屏蔽掉类的name属性
Michael
>>>print(Student.name) # 但是类属性并未消失,用Student.name仍然可以访问
Student
>>>dels.name # 如果删除实例的name属性
>>>print(s.name) # 再次调用s.name,由于实例的name属性没有找到,类的name属性就显示出来了
Student
网友评论