当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python graphlib.TopologicalSorter.static_order用法及代码示例


用法:

static_order()

返回一个迭代器对象,它将按拓扑顺序迭代节点。使用此方法时,不应调用prepare()done()。该方法等价于:

def static_order(self):
    self.prepare()
    while self.is_active():
        node_group = self.get_ready()
        yield from node_group
        self.done(*node_group)

返回的特定顺序可能取决于项目在图中插入的特定顺序。例如:

>>> ts = TopologicalSorter()
>>> ts.add(3, 2, 1)
>>> ts.add(1, 0)
>>> print([*ts.static_order()])
[2, 0, 1, 3]

>>> ts2 = TopologicalSorter()
>>> ts2.add(1, 0)
>>> ts2.add(3, 2, 1)
>>> print([*ts2.static_order()])
[0, 2, 1, 3]

这是因为 “0” 和 “2” 在图中处于同一级别(它们将在对 get_ready() 的同一调用中返回)并且它们之间的顺序由插入顺序决定。

如果检测到任何循环,将引发CycleError

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 graphlib.TopologicalSorter.static_order。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。