Pull to refresh

Comments 7

PinnedPinned comments

Что это было? Это же даже не обзор генераторных функций (генераторов). Потому, что:

  1. В середине произошла подмена слова генератор на слово итератор, хотя это не одно и то же.

  2. Не рассмотрена законная остановка запущенного генератора через generator.close()

  3. Не затронута проблема доступа к значениям генератора через generator.gi_frame.f_locals

  4. Не упомянут generator.send и то, что next(generator), это shortcut для generator.send(None)

  5. Не отмечено, что next(generator, sentinel) подавляет исключение StopIteration и возвращает sentinel

  6. Не приведена разница return value внутри генератора и raise StopIteration(value), и вообще не упомянут pep479, ухудшивший работу генераторов

  7. Не указана недоработка, что генераторы не работают в nogil парадигме (актуально для новых версий python)

  8. Ну и вообще не даны источники, где, все же, можно по-настоящему что-то узнать про генераторы (гениальный David Beazley, талантливый Łukasz Langa, и другие).

В общем @Pavel_K ждем доработанный вариант или продолжение статьи.

Она пожинает (yield) значение и приостанавливает выполнение...

Можно было бы сказать, "испускает". :-)

(Жалко, надо бы дополнить статью. Но уже поздний час. Попробую завтра. Извините.)

(...) производить, приносить, давать (плоды, урожай, доход); this land yields poorly эта земля даёт плохой урожай; to yield no results не давать никаких результатов (...)

А вот ни в значении "пожинать", ни в значении "испускать" я это слово не обнаружил ни в словаре Мюллера, ни в словаре Королёва, ни в словаре Апресяна.

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

Но в целом да, "выдаёт" будет более корректным переводом.

Согласен, что пожинает - это спорный термин (у него даже отсутствут некоторые глагольные формы) . Но мне хотелось привлечь к нему Ваше внимание и посоветоваться на этот счет.
Мне понравился Ваш вариант выдаёт - уместен в технической документации, и есть в нём что-то про фабрику, конвейер, процесс (как раз хорошо в контексте генераторов).
Заменил все упоминания "жать" на "выдаёт".
Спасибо

Что это было? Это же даже не обзор генераторных функций (генераторов). Потому, что:

  1. В середине произошла подмена слова генератор на слово итератор, хотя это не одно и то же.

  2. Не рассмотрена законная остановка запущенного генератора через generator.close()

  3. Не затронута проблема доступа к значениям генератора через generator.gi_frame.f_locals

  4. Не упомянут generator.send и то, что next(generator), это shortcut для generator.send(None)

  5. Не отмечено, что next(generator, sentinel) подавляет исключение StopIteration и возвращает sentinel

  6. Не приведена разница return value внутри генератора и raise StopIteration(value), и вообще не упомянут pep479, ухудшивший работу генераторов

  7. Не указана недоработка, что генераторы не работают в nogil парадигме (актуально для новых версий python)

  8. Ну и вообще не даны источники, где, все же, можно по-настоящему что-то узнать про генераторы (гениальный David Beazley, талантливый Łukasz Langa, и другие).

В общем @Pavel_K ждем доработанный вариант или продолжение статьи.

Как раз работал над второй частью
Вы на удивление точно предугадали ее синопсис )
Уже опубликовал
https://habr.com/ru/articles/936984/

Sign up to leave a comment.

Articles