Python. Генераторы

Скажу честно — такой штуки я пока в других языках не встречал. По крайней мере, не припомню. Я имею в виду не просто некий объект или функцию, при помощи которых можно генерировать некоторые значения. В питоне генераторы замечательны тем, что они не хранят все значения и не выдают весь список сразу. Генератор здесь — вполне обычная функция с одним лишь необычным оператором — yield. Этот оператор возвращает некоторое значение и приостанавливает выполнение функции до следующего обращения.

Вот пример генератора, выдающего числа Фибоначчи до указанного количества:

По здравом размышлении стоит отметить, что подобный генератор нетрудно реализовать при помощи класса в любом подходящем языке. 🙂

One comment

  1. Ага а так же спарка randomize/random или FindFirs/FindNext или аналогичная им в любом почти языке, по большому счету, реализует тот же принцип.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *