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

我想要一个装饰器,将 is 参数作为属性添加到底层函数,然后返回该函数本身。当我查看模块时,功能 foo 已被删除。它甚至没有出现。


def addarg(x):

    def decorator(func):

        func.x = x

        return func


@addarg(17)

def foo():

    pass


print(foo.x)    # should print 17


一只萌萌小番薯
浏览 157回答 1
1回答

江户川乱折腾

您的代码需要添加一行 -def addarg(x):&nbsp; &nbsp; def decorator(func):&nbsp; &nbsp; &nbsp; &nbsp; func.x = x&nbsp; &nbsp; &nbsp; &nbsp; return func&nbsp; &nbsp; return decorator # <-- Add this line@addarg(17)def foo():&nbsp; &nbsp; passprint(foo.x)这就是所有的人!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python