装饰有参合无参函数的无参装饰器
def wap(func):
def new_function(*args,**kwargs)
'''新增加功能部分'''
res=func(*args,**kwargs)
return res`在这里插入代码片`
return new_function
func是被装饰器装饰的函数,可以在res=func(*args,**kwargs)上下增加需要的功能
有参装饰器
通过在无参装饰器的基础上增加一层封装,得到有参装饰器
def demo(driver):
def wap(func):
def res(*args, **kwargs):
print(driver)
res=func(*args, **kwargs)
return res
return wap
此时可以在调用装饰器时,传递参数driver,根据driver实现特定的功能
调用方法@demo(driver=123)
保持被装饰后函数的文档和函数名
未处理前
函数的的熟悉已经变成res。
导入模块wraps,from functools import wraps,更改代码后如下图此时,被装饰的函数保留了自己本身的属性