Pull to refresh

Comments 14

Так много слов, когда можно было написать проще:

Генераторы однопроходны и не могут быть переитерированы. Точка.

Зачем вообще это писать? Это же прямо их определение…

Ну автор вон целый пост настрочил, не разобравшись.

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

Да, кейс жизненный. Только статью на хабре зачем про это писать? Это же база. Типа «вообще я сантехник, но тут довелось поразбираться с электрикой, и вот что оказывается будет, если рукой взяться за фазу, а ногой заземлиться, я и так попробовал и сяк, но результат один и тот же… напишу я статью про это в журнал Радио, а то вдруг они не в курсе»

Конечно, если всё это изначально знать, разъяснения будут казаться глупыми. Но подумайте о тех, кто в этом ещё не разобрался. Вряд ли они смогут понять всю суть по одному предложению.

Мне нужен был генератор, который я вызывал бы поочерёдно, получая
сообщения, которые мне нужно отправлять и обрабатывать ответ от
пользователей


Зачем для этого генератор? Почему не очередь? Например: https://docs.python.org/3/library/collections.html#collections.deque

Однако, как и любое другое средство, их следует использовать с осторожностью.

Я бы сказал для решения задач, для которых он предназначен.

Вот-вот, тут явно очередь напрашивается. Использовать для задачи неподходящую коллекцию, а потом ругаться, что она не так работает - странновато ))

Я не ругался. Просто решил разобраться, почему так, и заодно объяснить это тем, кто этого не знал. Для кого-то это банально и просто, а для кого-то это может быть полезно

Заголовок статьи что называется misleading. Это не проблема, это фича. В этом и есть проблема вашей статьи.

Я старался не создавать полноценные массивы, ведь их может быть очень много и это сказалось бы на нагрузке системы.

Не знаю, что вы имеете в виду под массивом, и зачем вам нужно много их. Очередь - это ссылки на данные. Я подозреваю, что разницы по нагрузке особо не будет. Но точные данные может дать только профайлер.

Когда-то давно, когда трава была зеленее и все такое, каждому джуну рекомендовали прочитать книжку Fluent Python.

Вам тоже рекомендую :)

Типичный пример того, когда вместо того, чтобы потратить целую минуту прочтения docs.python.org (или в целом ознакомившись с определением паттерна, т.к. понятие генератора исходит из общего программирования, тогда как в самом питоне является лишь её реализацией, так что можно было бы знать это и без знаний питона в целом) потратил всего лишь дофига времени разбираясь на собственном опыте ошибок

Sign up to leave a comment.

Articles