原文链接
1.python函数修饰符@的使用 - gdjlc - 博客园 (cnblogs.com)
2.Python @函数装饰器及用法(超级详细) (biancheng.net)
总结
-
带参的函数修饰器:在修饰函数内继续嵌套函数,嵌套函数以def func(*args,**kwargs)的形式出现
-
在修饰函数内部的返回值就是被修饰函数的返回值
-
被修饰函数的.__name__属性会变成修饰函数的嵌套函数的.__name__。要防止修改,需要from functools import wraps,对修饰函数的嵌套函数使用函数修饰符@wraps(func)
-
修饰符带参数
def funcB(arg):
def funcC(funcA):
@wraps(funcA)
def funcD(*args,**kwargs):
pass
@funcB(arg)
def funcA():
pass