class Test: pass
print(Test.__subclasses__())
返回:
AttributeError: class Test has no attribute '__subclasses__'
和
print(int.__subclasses__())
返回:
[<type 'bool'>]
为什么我不能在自定义对象上调用子类()?
这种内置方法不是自定义类型的reserver,是吗?
每个类都保留一个对其直接子类的弱引用列表。此方法返回所有仍然存活的引用的列表。例如:
答案 0 :(得分:6)
您需要这样做: -
class Foo(object):
pass
# This works perfectly fine now.
print(Foo.__subclasses__())
上面的类是一个“新式”类,因为它继承自对象类。新式类提供了许多“旧式”类没有的额外框架。新样式类的一个特定属性是能够使用子类方法确定类的子类。