装饰器
在不改变原来函数的调用方式的情况下,在这个函数的前后添加新的功能。
完美地符合了一个开发原则:开放封闭原则
装饰器格式:
1 from functools import wraps 2 def wrapper(f): # wrapper就是装饰器的意思(可自定义) 3 # 括号里的参数f,永远是被装饰的函数 4 @wraps(f) # 将装饰器返回原形函数 5 def inner(*args, **kwargs): # 实际执行函数。参数对应被装饰函数 6 '''在被装饰函数之前要做的事''' 7 ret = f(*args, **kwargs) # ★被装饰函数★ 8 '''在被装饰函数之后要做的事''' 9 return ret 10 return inner 11 12 13 @wrapper # 装饰器(语法糖) 相当于bignum = wrapper(bignum) 14 def bignum(a, b): # 被装饰函数 15 '''两个整数比大小''' 16 return a if a > b else b 17 18 print(bignum(7, 6)) 19 print(bignum.__name__) # 打印函数名 20 print(bignum.__doc__) # 打印函数注释

浙公网安备 33010602011771号