Более простой способ запустить функцию генератора, не заботясь об элементах.Python

Программы на Python
Ответить
Anonymous
 Более простой способ запустить функцию генератора, не заботясь об элементах.

Сообщение Anonymous »

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

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

В настоящее время я использую тривиальную самодельную функцию для исчерпания генераторов.

def exhaust(generator):
for _ in generator:
pass


Мне интересно, есть ли более простой способ сделать это, которого мне не хватает?

Изменить
Следуя примеру использования:

def create_tables(fail_silently=True):
"""Create the respective tables."""

for model in MODELS:
try:
model.create_table(fail_silently=fail_silently)
except Exception:
yield (False, model)
else:
yield (True, model)


В некотором контексте меня интересуют значения ошибок и успехов…

for success, table in create_tables():
if success:
print('Creation of table {} succeeded.'.format(table))
else:
print('Creation of table {} failed.'.format(table), file=stderr)


… а в некоторых я просто хочу запустить функцию «вслепую»:

exhaust(create_tables())


Подробнее здесь: https://stackoverflow.com/questions/474 ... bout-items
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»