Ich musste die folgende Funktion schreiben, um beim Analysieren einer Zeichenfolge zu einer ganzen Zahl ordnungsgemäß fehlschlagen. Ich könnte mir vorstellen, dass Python etwas eingebaut hat, aber ich kann es nicht finden. Wenn nicht, gibt es einen pythonischen Weg, dies zu tun, der keine separate Funktion erfordert?Gibt es eine eingebaute oder mehr Pythonic Weg zu versuchen, eine Zeichenfolge zu einer ganzen Zahl zu analysieren
Die Lösung, die ich am Ende benutzte, war eine Modifikation von @ sharjeels Antwort. Das Folgende ist funktional identisch, aber ich denke, lesbarer.
def ignore_exception(exception=Exception, default_val=None):
"""Returns a decorator that ignores an exception raised by the function it
decorates.
Using it as a decorator:
@ignore_exception(ValueError)
def my_function():
pass
Using it as a function wrapper:
int_try_parse = ignore_exception(ValueError)(int)
"""
def decorator(function):
def wrapper(*args, **kwargs):
try:
return function(*args, **kwargs)
except exception:
return default_val
return wrapper
return decorator
Was haben Sie scheint gut. –
@Paul Hildebrandt: Nicht nur gut, sondern die meisten Pythonic. –
Ich denke, Ihr Beispiel ist zusätzlich wertvoll, um einen praktischen Nutzen für Dekorateure zu demonstrieren. –