python - 查看python中所有继承的类

标签 python oop inheritance methods

所以我在网上做了一些研究,似乎 __subclasses__ 方法返回了 python 对象的所有继承类( relevant stack overflow question )

在 python3.8 上我尝试了以下操作:

class A:
    a = 1
      
class B:
    b = 2
    
class C(A, B):
    c = 3

obj = C()
print('a: ', obj.a)
print('subclasses: ', C.__subclasses__())

然后我就出去了

a: 1
subclasses: []

这表明类C成功继承了A和B,但是它们在子类方法中没有显示?那么 __subclasses__ 方法中是否缺少某些内容,或者该方法是否针对 python 3.8 进行了更改?

最佳答案

只是结合上面的答案:

  1. my_class.__subclasses__ 将返回 my_class 的子类

  2. C.__mro__ 显示您案例中的继承层次结构: (__main__.C'>, __main__.A'>, __main__.B'>, <输入“对象”>)

  object
   /  \
  A    B
   \  /
    C

简而言之,__subclasses__ 在对象层次结构阶梯中向下,__mro__ 向上。祝你好运:)

关于python - 查看python中所有继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71252362/

相关文章:

c++ - Catch-all 处理程序检测 C++ 中的子类异常

java - 字符串输入(仅输出所说的第一个单词)

java - 在 Java 中存储对象集合的最佳方式?

c++ - 访问另一个子类中基类的 protected 成员

C++ 继承问题 : undefined reference to 'vtable'

python - Django runserver错误: _frozen_importlib. _DeadlockError:由_ModuleLock ('django.test.signals'检测到死锁)在139824587568800

python - 如何在python中使用urllib一次请求多个url

python - 获取 QTableView 单元格值

python - 使用 Python 将指数修正高斯曲线拟合到数据

swift - 为什么其各自类型参数符合继承关系的泛型类型本身不符合类似关系?