18.4.3 检查类
类似于检查模块,可以采用同样的方式使用getmembers()扫描类,不过成员的类型不同。
import inspect
from pprint import pprint
import example
pprint(inspect.getmembers(example.A),width=65)
由于没有应用过滤,所以输出显示了属性、方法、槽,以及类的其他成员。
要查找一个类的成员,可以使用谓词isfunction()。ismethod()谓词只识别实例的绑定方法。
import inspect
from pprint import pprint
import example
pprint(inspect.getmembers(example.A,inspect.isfunction))
B的输出包括覆盖的get_name()方法、新方法,以及从A继承的__init__()方法。
import inspect
from pprint import pprint
import example
pprint(inspect.getmembers(example.B,inspect.isfunction))
从A继承的方法(如__init__())会被标识为B的方法。