关于python装饰器的问题

(分钟前 更新) 373 6352

最新回答

假设有带参装饰器decorator(*args, **kwargs),使用该装饰器装饰函数func(*args2, **kwargs2):
@decorator(*args, **kwargs)
def func(*args2, **kwargs2):
...
实际上是以下写法专的语法糖:
def func(*args2, **kwargs2):
...
func decorator(*args, **kwargs)(func)
如你所见,调用decorator(*args, **kwargs)返回的是属一个callable对象(通常是一个函数,该函数用作内层装饰器),然后进一步调用此callable对象并传递函数func作为参数,得到一个被装饰过后的函数func&39;,令变量func重新指向这个函数func&39;。因此,这种带参的装饰器通常有三层,外层装饰器返回内层装饰器,内层装饰器返回装饰后的函数。
政哥哥哥哥哥哥 2024-05-08

扩展回答

热门问答

装修专题

首页 >  关于python装饰器的问题

其他人还看了

页面运行时间: 0.048141002655029 秒