【发布时间】:2020-02-07 22:05:55
【问题描述】:
问题在于,如果第二个数字不为零,则内部函数返回 None 而不是产生输出!
为什么它不能充当普通的装饰器?
代码:
def check(fun):
def inner_fun(a,b):
if b == 0:
print("0 is not valid")
return
fun(a,b)
return inner_fun #returns None
def divide(a,b):
return a / b
divide = check(divide)
print(divide(5, 0))
输出:
0 is not validNone
【问题讨论】:
-
你应该在装饰器中返回你的包装函数调用,即
return fun(a,b)以获得你想要的
标签: python-decorators python-3.7