# isinstance issubclass 与系统内置属性 __getattribute__ # isinstance(obj, cls)检查obj是否是类cls的实例 class Foo: pass obj = Foo() print(isinstance(obj, Foo)) # True 判断obj是否是Foo类的实例 mystr = 'hello world' print(isinstance(mystr, str)) # True 判断字符串是否是str这个类的实例 # issubclass(sub, super) 检查sub类是否是super类的子类 class A: pass class B(A): pass b1 = B() print(issubclass(B, A)) # True 判断B是否是A的子类 print(isinstance(b1, A)) # True 判断b1是否是A的实例 # __getattribute__ class Foo1: def __init__(self, x): self.x = x def __getattr__(self, item): print('属性不存在时执行的是我') # return self.__dict__[item] def __getattribute__(self, item): # 不管属性是否存在,都要执行此方法 print('不管属性是否存在,都要执行我') raise AttributeError('抛出AttributeError异常') # __getattr__会监听__getattribute__抛出的AttributeError异常,一但发现此异常就会执行__getattr__中的代码 # 当__getattribute__与__getattr__同时存在时,只会执行__getattribute__,除非__getattribute__在执行过程中抛出AttributeError异常
isinstance issubclass 与系统内置属性 __getattribute__
猜你喜欢
转载自www.cnblogs.com/dangrui0725/p/9465657.html
今日推荐
周排行