【发布时间】:2014-05-14 16:40:07
【问题描述】:
如何在 Python 中对类列表进行排序,确保任何子类在列表中的任何父类之前?
我问是因为我想从类型列表中查看一个对象属于什么类型,但如果它属于多个,则找到最具体的类型。
【问题讨论】:
-
在排序键函数中使用
issubclass。 -
(通常:
sorted(classes, cmp=lambda x, y: 1 if issubclass(x, y) else -1)) -
@njzk2:那个比较器不一致;没有继承关系的类相互比较小于另一个,一个类总是比较大于自己。
-
这只是我脑海中的一个例子,不是一个实际的答案。
标签: python class oop method-resolution-order