修饰符模板
无参装饰器函数模板
from functools import wraps
def 装饰器名称(func):
@wraps(func)
def wrapper(*args,**kwargs):
1.调用修饰函数之前要执行的代码
2.根据需要调用修饰函数,如果需要返回结果
return func(*args,**kwargs)
3.执行而不是调用修饰函数的代码
return wrapper
使用方法:@装饰器名称 -----没有括号
含参装饰器模板
from functools import wraps
def 装饰器外套名称(参数变量名=默认值)
def 装饰器名称(func):
@wraps(func)
def wrapper(*args,**kwargs):
1.调用修饰函数之前要执行的代码
2.根据需要调用修饰函数,如果需要返回结果
return func(*args,**kwargs)
3.执行而不是调用修饰函数的代码
return wrapper
return 装饰器名称
使用方法:@装饰器外套名称(参数) ----必须要有括号,使用默认参数时可以不传参,没有默认传参必须传参
装饰器类模板
from functools import wraps
class logit(object):
def __init__(self, logfile='out.log'):
self.logfile = logfile
def __call__(self, func):#如果在类中实现了 __call__ 方法,那么实例对象也将成为一个可调用对象
@wraps(func)
def wrapper(*args,**kwargs):
1.调用修饰函数之前要执行的代码
.根据需要调用修饰函数,如果需要返回结果
return func(*args,**kwargs)
3.执行而不是调用修饰函数的代码
return wrapper
使用方法:类名() ----这里的括号代表实例化
可以通过继承扩展装饰器类(__init__使用超继承)
参考:https://www.runoob.com/w3cnote/python-func-decorators.html

浙公网安备 33010602011771号