内置函数的补充与getattrebuit

isinstance(g1,Room)判对象g1是否为Room类的实例化对象
issubclass(danyuan,Room)判断danyuan类是否为Room类的子类
__getattr__  __getattribute__
当只有前者的时候,如果实例化对象查找的属性或者方法不存在,前者会被触发,若二者同时存在,后者只要执行就触发,而前者不会,若要前者也能触发执行,需要在后者加入异常处理
具体代码实现如下:
 1 class Room:
 2     def __init__(self,num):
 3         self.name=num
 4 
 5     def __getattr__(self, item):
 6         print("11111111111111")
 7 
 8     def __getattribute__(self, item):
 9         print('22222222222222')
10         raise AttributeError("天王盖地虎")
11 
12 class danyuan(Room):
13     pass
14 
15 r1=Room('007')
16 # print(isinstance(g1,Room))
17 # print(issubclass(danyuan,Room))
18 
19 r1.name


猜你喜欢

转载自www.cnblogs.com/wen-kang/p/9250532.html
今日推荐