我想要一个将is参数作为属性添加到基础函数的装饰器,然后返回该函数本身。当我查看模块时,功能foo已删除。它甚至没有显示出来。
def addarg(x):
def decorator(func):
func.x = x
return func
@addarg(17)
def foo():
pass
print(foo.x) # should print 17
答案 0 :(得分:1)
基于@Karl的注释,您的代码需要添加一行-
def addarg(x):
def decorator(func):
func.x = x
return func
return decorator # <-- Add this line
@addarg(17)
def foo():
pass
print(foo.x)
这就是所有人!