【发布时间】:2019-11-06 17:39:32
【问题描述】:
def div2(mult):
def display():
print(f"we are doing a check of multiples if div by 2")
if mult%2==0:
return f"{mult} is divisible"
return display
@div2
def multi(n):
return n*n*n
print(multi(5))
在一个视频中,我了解到我们不需要为包装函数传递参数(例如显示),主函数的参数(在这种情况下为div2)将在包装函数中使用。
当我对上面的代码尝试相同的操作时,我得到了一个 TypeError display() 需要一个参数。
现在很困惑,在这种情况下,我的所有 3 个函数都应该具有如下参数:
div2() -> multi() 函数本身作为参数
display() -> 显示函数值的参数multi()
multi() -> 用于计算的参数
注意:当我让display() 带一个参数时,代码起作用了
【问题讨论】:
标签: python python-3.x parameters python-decorators