如何在python3中检索类类型的子类?

如何在python3中检索类类型的子类?,python,Python,在python3中,对象是所有类的基础 >>> object <class 'object'> >>> object.mro() [<class 'object'>] # it makes sense. 然后发生错误: >>> type.__subclasses__() Traceback (most recent call last): File "<stdin>", line 1, in <

在python3中,
对象
是所有类的基础

>>> object
<class 'object'>
>>> object.mro()
[<class 'object'>]
# it makes sense.
然后发生错误:

>>> type.__subclasses__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descriptor '__subclasses__' of 'type' object needs an argument
>>>类型。子类
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“type”对象的描述符“\uuuu子类”需要参数

如何检索类类型的子类?

关于
\uuuuu子类\uuuuu
没有足够的文档。但是,从
类型
调用dunder似乎需要一个实例“type”对象:

行为也与object
object
一致,因此:

type.__subclasses__(object) == object.__subclasses__()
>>> type.__subclasses__()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descriptor '__subclasses__' of 'type' object needs an argument
>>> type.__subclasses__(type) # 'type' is an instance of itself
[<class 'abc.ABCMeta'>, <class 'enum.EnumMeta'>, <class '__main__.a'>]
>>> int.__subclasses__()
[<class 'bool'>, <enum 'IntEnum'>, ...]
>>> type.__subclasses__(int)
[<class 'bool'>, <enum 'IntEnum'>, ...]
type.__subclasses__(object) == object.__subclasses__()