當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。