Что делает ключевое слово «yield» в Python?Python

Программы на Python
Ответить
Anonymous
 Что делает ключевое слово «yield» в Python?

Сообщение Anonymous »

Какую функциональность обеспечивает ключевое слово yield в Python?
Например, я пытаюсь понять этот код1:

Код: Выделить всё

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
А это абонент:

Код: Выделить всё

result, candidates = [], [self]
while candidates:
node = candidates.pop()
distance = node._get_dist(obj)
if distance = min_dist:
result.extend(node._values)
candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
return result
Что происходит при вызове метода _get_child_candidates?
Возвращается ли список? Один элемент? Его снова вызывают? Когда прекратятся последующие звонки?



1. Этот фрагмент кода был написан Йохеном Шульцем (jrschulz), который создал великолепную библиотеку Python для метрических пространств. Это ссылка на полный источник: Модуль mspace.

Подробнее здесь: https://stackoverflow.com/questions/231 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»