Size: a a a

2020 March 25

AT

Alex Ted in Python Flask
функция является генератором, если в ней присутствует yield
источник

AT

Alex Ted in Python Flask
Konstantin Sirotkin
Скажите, а как функция знает, что она возвращает генератор? По факту наличия в ней хотя бы одного yield? (В том числе if False: yield?) Можно ли как-то заставить функцию возвращать пустой генератор, не указывая в ней yield?
не понял формулировку "пустой генератор", поясните
источник

KS

Konstantin Sirotkin in Python Flask
который ничего не возвращает
источник

KS

Konstantin Sirotkin in Python Flask
наверное дурацкая идея :)
источник

AT

Alex Ted in Python Flask
ничего это None ?
источник

T

Tishka17 in Python Flask
Konstantin Sirotkin
Скажите, а как функция знает, что она возвращает генератор? По факту наличия в ней хотя бы одного yield? (В том числе if False: yield?) Можно ли как-то заставить функцию возвращать пустой генератор, не указывая в ней yield?
def empty_gen():
 if False: yield
источник

KS

Konstantin Sirotkin in Python Flask
ничего - это в смысле мы говорим генератору "дай следующий элемент", а он говорит "нету следующего элемента"
источник

T

Tishka17 in Python Flask
def other_empty_gen():
  yield from []
источник

KS

Konstantin Sirotkin in Python Flask
Tishka17
def other_empty_gen():
  yield from []
о
источник

KS

Konstantin Sirotkin in Python Flask
спасибо
источник

KS

Konstantin Sirotkin in Python Flask
в общем посмотрел я, кто-то на stack exchange так и пишет, что функция становится генератором, если в ней при компиляции встречается yield
источник

KS

Konstantin Sirotkin in Python Flask
и это необходимое и достаточное условие
источник

KS

Konstantin Sirotkin in Python Flask
попутно, хочу спросить еще про одну штуку
источник

KS

Konstantin Sirotkin in Python Flask
Есть api, из которого постранично отдаются данные. Мне бы хотелось, чтобы вся работа с api была спрятана, то есть чтобы с точки зрения остальной программы был только генератор, который выдает результаты по одному
источник

KS

Konstantin Sirotkin in Python Flask
все получилось, но вижу я, что без многопоточной обработки тормозит: api медленное, долго ждать каждой следующей страницы
источник

KS

Konstantin Sirotkin in Python Flask
стоит ли эту задачу решать через futures?
источник

AT

Alex Ted in Python Flask
вы страницы запрашиваете последовательно или плевать как лишь бы получить определенное количество страниц?
источник

KS

Konstantin Sirotkin in Python Flask
через as_completed получать все страницы результатов (порядок не важен), а потом итерироваться по результатам и выдавать записи по одной?
источник

KS

Konstantin Sirotkin in Python Flask
плевать
источник

KS

Konstantin Sirotkin in Python Flask
есть одна неприятная сложность, что для того, чтобы узнать, сколько страниц в результате, надо получить первую страницу
источник