66.对象的属性查找顺序

一、属性查找顺序

类有两种属性:数据属性和函数属性

  1. 类的数据属性是所有对象共享的
  2. 类的函数属性是绑定给对象用的

查找顺序:

首先从自身查找,没找到往类中找,类中没有则会报错。即对象的属性查找顺序为:自身-->类-->报错

#类的数据属性是所有对象共享的,id都一样
print(id(OldboyStudent.school))

print(id(s1.school))
print(id(s2.school))
print(id(s3.school))

'''
4377347328
4377347328
'''

#类的函数属性是绑定给对象使用的,obj.method称为绑定方法,内存地址都不一样
#ps:id是python的实现机制,并不能真实反映内存地址,如果有内存地址,还是以内存地址为准
print(OldboyStudent.learn)
print(s1.learn)
print(s2.learn)
print(s3.learn)
'''
<function OldboyStudent.learn at 0x1021329d8>
<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x1021466d8>>
<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146710>>
<bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146748>>
'''
posted @ 2020-04-07 19:57  祥SHAO  阅读(180)  评论(0编辑  收藏  举报