You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取一个类的完整继承链中的所有类?

获取Python类的完整继承链

在Python中,要获取一个类的完整继承链(包含自身及所有父类,顺序从当前类到最顶层父类),可以通过以下两种简单方法实现:

方法1:利用类的__mro__属性

每个类都内置了__mro__属性,它会返回一个元组,包含按方法解析顺序排列的所有继承类:

class C:
    pass

class B(C):
    pass

class A(B):
    pass

# 获取A的完整继承链
chain = A.__mro__
print(chain)
# 输出:(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class 'object'>)

如果不需要最顶层的object类,可通过切片剔除:

chain_without_object = A.__mro__[:-1]
print(chain_without_object)
# 输出:(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>)

方法2:使用inspect模块的getmro()函数

inspect模块提供的getmro()函数和__mro__属性效果完全一致,同样返回继承链元组:

import inspect

chain = inspect.getmro(A)
print(chain)
# 输出结果与__mro__相同

额外说明

  • 若需要将结果转为列表格式,直接用list()转换即可:list(A.__mro__)
  • 对于多重继承场景,返回的顺序遵循Python的C3方法解析算法,能正确处理复杂继承关系

内容的提问来源于stack exchange,提问作者Farid Murshudov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:27:28