Python装饰器,嵌套函数
这个问题在这里已经有了答案:
为什么第二个样本不起作用?
因为你正在调用返回函数,所以你没有返回函数。
为什么参数,如果我们使用嵌套函数,kwargs会“神奇地”出现?
它们并不神奇,我们正在宣布它们,如下所示:
def deco(*args, **kwargs):
这些是通用的,并且将匹配任何函数签名(参数列表)。 你不必称他们为args
和kwargs
,这只是一个惯例,你可以称他们为sharon
和tracy
。
我能做什么,使第二个样本工作? 除了嵌套另一个功能,当然。
那么你没有说你期望第二个样本做什么。 但是我想把它变成一个装饰器:
def func(f):
return f
但是这并不是很多!
顺便说一句,覆盖现有的Python内置( sum
)通常是一个坏主意 - 你必须有一个很好的理由。
上一篇: python decorators, nested function
下一篇: What does a Python decorator do, and where is its code?