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

带有 arg 的装饰器返回与传递的函数相同的函数

带有 arg 的装饰器返回与传递的函数相同的函数

一只萌萌小番薯 2022-06-28 17:07:59
我想要一个装饰器,将 is 参数作为属性添加到底层函数,然后返回该函数本身。当我查看模块时,功能 foo 已被删除。它甚至没有出现。def addarg(x):    def decorator(func):        func.x = x        return func@addarg(17)def foo():    passprint(foo.x)    # should print 17
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您的代码需要添加一行 -


def addarg(x):

    def decorator(func):

        func.x = x

        return func

    return decorator # <-- Add this line


@addarg(17)

def foo():

    pass


print(foo.x)

这就是所有的人!


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号