Skip to main content
 首页 » 编程设计

Python:可以在构建类型上调用 __subclasses__(),而不是在自定义对象上

2025年05月04日18zlslch

class Test: pass 
print(Test.__subclasses__()) 

返回:

AttributeError: class Test has no attribute '__subclasses__' 

和

print(int.__subclasses__()) 

返回:

[<type 'bool'>] 

为什么我不能在我的自定义对象上调用子类()?

这个内置方法不是自定义类型的保留器,是吗?

Each class keeps a list of weak references to its immediate subclasses. This method returns a list of all those references still alive. Example:

请您参考如下方法:

你需要这样做:-

class Foo(object): 
    pass 
 
# This works perfectly fine now. 
print(Foo.__subclasses__()) 

上面的类是一个“新式”类,因为它继承自对象类。新式类提供了许多“旧式”类所没有的额外框架。新式类的一个特殊属性是能够使用 subclasses 方法确定该类的子类。