Генераторы в Python | Кодементор

Генератор — это функция Python, которая возвращает итерируемый объект из сгенерированной последовательности по одному. Вместо стандартного оператора return используется оператор yield. Когда интерпретатор оценивает определение функции, наличие оператора yield — это то, что классифицирует функцию как генератор. При каждом вызове генератора оператор yield возвращает только одно значение из итерации или диапазона значений. Возвращаемое значение указывает на текущий элемент. Доступ к следующему элементу можно получить, вызвав generate.next().

Предположим, например, что вы профессор в университете, занимающийся передовыми исследованиями, и NSF согласился финансировать ваш проект с обещанной суммой в 24000 долларов США в год, но будет переводить 6000 долларов США на ваш счет только ежеквартально после того, как вы проведете исследование на семестровой основе.

x = [1,2,3,4]
y = [10,20,30,40]

def gentr_fn(x,y):
    for i in x:
        yield i
    while 1:
        for j in y:
            yield j

a = gentr_fn(x,y)
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()
print a.next()

>>gentr_fn(x,y)
1 2 3 4 10 20 30 40 10 20

Еще один простой пример, который следует иметь в виду, чтобы понять работу генератора, — это банкомат или молочный киоск с монетоприемником.

Похожие записи

Добавить комментарий

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