I have a decorator that checks a function's argument for int type.
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
When I run a decorated function, it returns None instead of an int value.
@check_type_int
def times2(num):
return num*2
times2('Not A Number') # prints "Bad Type"
print times2(2) # prints "None"
The last line should print 4. Can someone please spot my mistake? Thanks.
You don't return any value from new_function inside the decorator, therefore it returns None by default. Just change this line:
old_function(arg)
to
return old_function(arg)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With