Возможный дубликат:
Откроется ключевое слово yield Python
Может кто-нибудь объяснить мне, что на самом деле делает инструкция yield в этом бите кода:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a+b
для числа в fibonacci(): # Использовать генератор в качестве итератора; номер печати
Насколько я понимаю до сих пор, мы определяем функцию finonacci() без параметров?
внутри функции мы определяем a и b, равные 0 и 1, затем, в то время как это верно, мы получаем a. Что это на самом деле делает? Кроме того, давая a? a теперь равно b, а b теперь равно a + b.
Следующий вопрос, для числа в fibonacci(), означает ли это для каждого числа в функции или что? Я в равной степени ошеломлен тем, что доходность и "за число" на самом деле делают. Очевидно, что я знаю, что это означает для каждого числа в fibonacci() номере печати. Я действительно определяю номер, не зная об этом?
Спасибо, извините, если я не понимаю. Кстати, это для проекта Эйлера, если бы я знал, как правильно программировать, это будет легкий ветерок, но я пытаюсь изучить это на лету.