前言
有田不耕仓廪虚,有书不读子孙愚。
目标
掌握装饰器通用模式编码,使代码有更高的兼容性
一、定义
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)
二、通用代码
import time
# 定义通用装饰器
def decorator(funt):
# 可变常参数,单参*args,双参**kw
def wrapper(*args,**kw):
print(time.time())
funt(*args,**kw)
return wrapper
# 定义方法
@decorator
def f1(fun_name1,fun_name2):
print("This is function!!!"+fun_name1)
print("This is function!!!"+fun_name2)
@decorator
def f2(fun_name1,fun_name2,**kw):
print("This is function!!!"+fun_name1)
print("This is function!!!"+fun_name2)
print(kw)
print(kw['a'])
## 调用
f1("fun_name1","444")
f2("fun_name1","444",a=1,j=2)
三、使用及场景
1日志打印
from functools import wraps
def logit(func):
@wraps(func)
def with_logging(*args, **kwargs):
print(func.__name__ + " was called")
return func(*args, **kwargs)
return with_logging
@logit
def addition_func(x):
"""Do some math."""
return x + x
result = addition_func(4)
参考
https://www.runoob.com/w3cnote/python-func-decorators.html
多留言多点赞你们的只支持是我坚持下去的动力,都支棱起来!!!