例如这是我的功能:def myfunc(x,y): print(x+y)现在我想为它编写一个装饰器我希望该装饰器在 x+y 之后简单地打印“test”我的意思是下次我要调用 myfunc(x,y) 我希望结果是这样的x+y test我这样做的原因是我想学习将带参数的函数传递给装饰器,如果您为此编写装饰器,我将在这个简单的示例中学习。谢谢你的帮助
2 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
要使该函数适用于具有任意数量参数的函数,您可以这样做:
def print_test(func):
def wrapper(*args,**kwargs):
res = func(*args,**kwargs)
print('test')
return res
return wrapper
@print_test
def myfunc(x,y):
print(x+y)
myfunc(2,3)
森栏
TA贡献1810条经验 获得超5个赞
你可以这样做:
def mydecorator(f):
def wrapper(x,y):
print ("inside my decorator")
f(x,y)
print ("test")
return wrapper
@mydecorator
def myfunc(x,y):
print(x+y)
myfunc(4,5)
上面代码执行的输出是:
inside my decorator
9
test
添加回答
举报
0/150
提交
取消