“ 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?
相关文章
相关标签/搜索