为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-09-25 21:03:57
例如这是我的功能: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)


查看完整回答
反对 回复 2021-09-25
?
森栏

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


查看完整回答
反对 回复 2021-09-25
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信