Einfachere Möglichkeit, eine Generatorfunktion auszuführen, ohne sich um Elemente zu kümmernPython

Python-Programme
Anonymous
 Einfachere Möglichkeit, eine Generatorfunktion auszuführen, ohne sich um Elemente zu kümmern

Post by Anonymous »

Ich habe einige Anwendungsfälle, in denen ich Generatorfunktionen ausführen muss, ohne mich um die zurückgegebenen Elemente zu kümmern.

Ich kann sie nicht zu Nicht-Generaor-Funktionen machen, da ich in anderen Anwendungsfällen auf jeden Fall die zurückgegebenen Werte benötige.
Ich verwende derzeit eine triviale selbst erstellte Funktion, um die Generatoren auszuschöpfen.

Code: Select all

def exhaust(generator):
for _ in generator:
pass
Ich habe mich gefragt, ob es eine einfachere Möglichkeit gibt, das zu tun, die mir fehlt?
Nach einem Anwendungsfall:

Code: Select all

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)
In gewissem Zusammenhang sind mir die Fehler- und Erfolgswerte wichtig …

Code: Select all

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)
… und in einigen Fällen möchte ich die Funktion einfach „blind“ ausführen:

Code: Select all

exhaust(create_tables())

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post