gpt4 book ai didi

Python:如何枚举类的虚拟父类(super class)?

转载 作者:行者123 更新时间:2023-12-01 03:54:42 26 4
gpt4 key购买 nike

对于任何类,您都可以通过属性 __mro__ 告诉(非虚拟)父类(super class),并通过调用 __subclasses__ 告诉(非虚拟)子类。

对于任何 ABC,您可以通过属性 _abc_registry 告诉所有虚拟子类。

有没有办法告诉一个类的所有虚拟父类(super class),即它注册为虚拟子类的所有类?

最佳答案

For any ABC you can tell all virtual subclasses via the attribute '_abc_registry'.

不,你不能。您只能通过这种方式找到显式注册的虚拟子类。由 __subclasshook__ 处理的任何内容都不会显示在您的支票中。

要完成您想要做的事情,您必须遍历 Python session 中定义的每个 ABC 并调用 isinstance。虽然这在 CPython 中通过使用 __subclasses__ 方法遍历类型层次结构在技术上是可行的,但这可能是一个坏主意。

关于Python:如何枚举类的虚拟父类(super class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com