内置函数:callable, super, isinstance, issubclass
- callable :检查对象是否可调用
检查对象是否可调用。如果返回True,对象仍然可能调用失败;但如果返回False,调用对象绝对不会成功。
callable在类,函数,以及含有__call__的方法中返回True
def func():
pass
print(callable(func))
class Foo:
pass
print(callable(Foo))
class Foo:
def __call__(self, *args, **kwargs):
pass
obj = Foo()
print(callable(obj))
>>>True
>>>True
>>>True
- super:按照mro继承关系向上找成员
class A:
def show(self, n):
print("A", n)
# super是上一级,因为self是C,所以执行完A后会返回C,执行C的上一级B
super().show(100+n)
class B:
def show(self, n):
print("B", n)
class C(A, B):
pass
obj = C()
obj.show(2)
>>>A 2
>>>B 102
- isinstance :判断对象是否是某个类或其子类的实例
class Top:
pass
class Base(Top):
pass
class Foo(Base):
pass
v1 = Foo()
print(isinstance(v1, Foo))
print(isinstance(v1, Base))
print(isinstance(v1, Top))
>>>True
>>>True
>>>True
- issubclass : 判断类是否是某个类的子孙类
class Top:
pass
class Base(Top):
pass
class Foo(Base):
pass
print(issubclass(Foo, Base))
print(issubclass(Base, Top))
>>>True
>>>True
>>>True