Python的自省,是自我反省,自己检查自己的机制。在Python中,有很多方式可以做到让Python自省,这篇文章主要介绍两个isinstance
和 issubclass
isinstance
isinstance(obj, cls) 用来检查obj对象是否是cls类的对象
1 2 3 4 5 6 7 8 9 10 11 12
| class A: pass
a = A() print(isinstance(a, A))
i = 10 print(isinstance(i, int))
------------ True True
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| class A: pass
class B(A): pass
b = B() print(isinstance(b, B)) print(isinstance(b, A))
------------ True True
|
补充:也可以是cls的父类
issubclass
issubclass(sub, super) 用来检查sub类是否是 super 类的派生类
1 2 3 4 5 6 7 8
| class A: pass
class B(A): pass
print(issubclass(B, A)) print(issubclass(A, B))
|