Was ist die "Ausbeute" Stichwort?

Was ist der nutzen der yield Schlüsselwort in Python? Was tut es?

Zum Beispiel, versuche ich zu verstehen, diesen code1:

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  

- Und dies ist der Anrufer:

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

Was passiert, wenn die Methode _get_child_candidates genannt wird?
Wird eine Liste zurückgegeben? Ein einzelnes element? Heißt das nochmal? Wann werden nachfolgende Anrufe stoppen?



1. Dieses Stück code wurde geschrieben von Jochen Schulz (jrschulz), die aus einer großen Python-Bibliothek für Metrische Räume. Dies ist der link zum kompletten Quelle: Modul mspace.

InformationsquelleAutor Alex. S. | 2008-10-23

Schreibe einen Kommentar