issubclass() 这个内置函数可以帮我们判断xxx类是否是yyy类型的子类
class Base:
pass
class Foo(Base):
pass
class Bar(Foo):
pass
print(issubclass(Bar, Foo)) # True
print(issubclass(Foo, Bar)) # False
print(issubclass(Bar, Base)) # True
isinstance()可以判断该对象是否是xxx家族体系中的(只能往上判断)
class Base:
pass
class Foo(Base):
pass
class Bar(Foo):
pass
print(isinstance(Foo(), Foo)) # True
print(isinstance(Foo(), Base)) # True
print(isinstance(Foo(), Bar)) # False
关于反射, 其实⼀一共有4个函数:
1. hasattr(obj, str) 判断obj中是否包含str成员
2. getattr(obj,str) 从obj中获取str成员
3. setattr(obj, str, value) 把obj中的str成员设置成value. 注意. 这⾥里里的value可以是
值, 也可以是函数或者⽅方法
4. delattr(obj, str) 把obj中的str成员删除掉
注意, 以上操作都是在内存中进⾏行行的. 并不会影响你的源代码