「 yield」關鍵字有什麼做用?

問題:

Python中yield關鍵字的用途是什麼? 它有什麼做用? node

例如,我試圖理解這段代碼1spa

def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

這是呼叫者: code

result, candidates = [], [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
    candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
return result

調用_get_child_candidates方法時會發生什麼? 是否返回列表? 一個元素? 再叫一次嗎? 後續通話什麼時候中止? get


1.這段代碼是由Jochen Schulz(jrschulz)編寫的,Jochen Schulz是一個很好的用於度量空間的Python庫。 這是完整源代碼的連接: Module mspace io


解決方案:

解決方案一: 「 yield」關鍵字有什麼做用?
解決方案二(英文): What does the 「yield」 keyword do?
相關文章
相關標籤/搜索