通用装饰器
def logging(fn):def inner(*args, **kwargs):print("我是日志")result = fn(*args, **kwargs)return resultreturn inner
多个装饰器
def mylog2(f):def inner(*args, **kwargs):str = f(*args, **kwargs)ret = f"begin1 {str} end"return retreturn innerdef mylog(f):def inner(*args, **kwargs):print(args)if args[0] == 2:return f"arg 不合法"ret = f(*args, **kwargs)return f" 我是内层日志begin {ret} 我是内层日志end "return inner@mylog2
@mylog
def add(a,b,c=20,d=50):print(a+b)return a+b