Работали ли вы с настолько огромным объемом данных, что он переполнял память компьютера? Я часто с этим сталкивался, пока не услышал о генераторах. Иногда на собеседованиях или иных тестах на оценку знаний предлагают такую задачу: Перед вами два выражения. Определите, что выведет каждое из них и в чем их разница. a = [i * i in range(5)] b = (i * i in range(5)) Если вы сомневаетесь в своих знаниях, то эта статья для вас. Использование Генераторов Функции генераторов (их описание можно почитать в PEP 255) представляют собой особый вид функций, которые возвращают «ленивый итератор»...
Генератор - это функция, вызов которой возвращает следующий объект согласно алгоритму. В отличии от итераторов, для генератора нужно написать лишь функцию, без использования классов. Напишем функцию-генератор: Он также будет генерировать рандомные числа от 0 до 1 k раз. Ключевое слово yield говорит о том, что функция является генератором и используется вместо return. Также стоит отметить, что yield позволяет исполнение кода после своего исполнения, в отличии от return, который останавливает выполнение функции...