如何在 Python 中为这个简单的函数编写装饰器?

例如这是我的功能:


def myfunc(x,y):

    print(x+y)

现在我想为它编写一个装饰器我希望该装饰器在 x+y 之后简单地打印“test”我的意思是下次我要调用 myfunc(x,y) 我希望结果是这样的


x+y   

test

我这样做的原因是我想学习将带参数的函数传递给装饰器,如果您为此编写装饰器,我将在这个简单的示例中学习。谢谢你的帮助


萧十郎
浏览 188回答 2
2回答

暮色呼如

要使该函数适用于具有任意数量参数的函数,您可以这样做:def print_test(func):  def wrapper(*args,**kwargs):    res = func(*args,**kwargs)    print('test')    return resreturn wrapper@print_testdef myfunc(x,y):    print(x+y)myfunc(2,3)

森栏

你可以这样做:def mydecorator(f):    def wrapper(x,y):        print ("inside my decorator")        f(x,y)        print ("test")    return wrapper@mydecoratordef myfunc(x,y):    print(x+y)myfunc(4,5)上面代码执行的输出是:inside my decorator9test
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python