python中获取完整的继承树名称
class Base:
def __init__(self):
pass
def get_class_name(self):
return self.__class__.__name__
def get_parent_class_name(self):
#首先获取继承的父类
bases = self.__class__.__bases__
return [base.__name__ for base in bases]
def get_ancestor_names(self):
ancestors = self.__class__.mro()
return [ancestor.__name__ for ancestor in ancestors]
class Father(Base):
pass
class Child(Father):
pass
if __name__ == '__main__':
print(Child().get_class_name())
print(Child().get_parent_class_name())
print(Child().get_ancestor_names())
运行结果如下:
Child
[‘Father’]
[‘Child’, ‘Father’, ‘Base’, ‘object’]
Process finished with exit code 0