Ich habe einen Dekorator, der das Argument einer Funktion für int
Typ überprüft.Dekorierte Funktion gibt keine zurück
def check_type_int(old_function):
def new_function(arg):
if not isinstance(arg, int):
print 'Bad Type' # raise TypeError('Bad Type')
else:
old_function(arg)
return new_function
Wenn ich eine eingerichtete Funktion ausführen, gibt es None
anstelle eines int
Wert.
@check_type_int
def times2(num):
return num*2
times2('Not A Number') # prints "Bad Type"
print times2(2) # prints "None"
Die letzte Zeile sollte 4
drucken. Kann jemand bitte meinen Fehler erkennen? Vielen Dank.
Warum Sie explizit Typen wie diese werden überprüft? Und warum 'print', anstatt einen Fehler zu erzeugen, wenn der Typ ungültig ist? – jonrsharpe