我有一个类,其中有一个“依赖项”列表,指向相同基本类型的其他类。
class Foo(Base):
dependencies = []
class Bar(Base):
dependencies = [Foo]
class Baz(Base):
dependencies = [Bar]
我想对这些类根据其依赖关系生成的实例进行排序。在我的示例中,我希望首先出现Foo实例,然后是Bar,然后是Baz。
最好的分类方式是什么?
最佳答案
这称为拓扑排序。
def sort_deps(objs):
queue = [objs with no dependencies]
while queue:
obj = queue.pop()
yield obj
for obj in objs:
if dependencies are now satisfied:
queue.append(obj)
if not all dependencies are satisfied:
error
return result
关于python - 如何根据依赖关系排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/952302/