装饰器的理解
一个比喻:
人类穿着内裤很大程度上是为了遮羞和对关键部位进行保护,但是却不能提供保暖。因此我们还需要穿着长裤。长裤就是对内裤功能的补充,却不影响内裤本身的功能。
装饰器介绍
python中的装饰器的目的是为一个目标函数添加额外的功能却不修改函数本身。装饰器的本身其实是一个特殊的函数。主要的应用场景有插入日志,性能测试、事务处理等。
@函数为python的语法糖
import logging
import time
def logging_first(func):
def wrapper(x, y):
logging.warning(time.strftime("%Y-%m-%d %H:%M:%S %Z", time.localtime(time.time())))
return func(x, y)
return wrapper
@logging_first
def func_sum(x, y):
print( x + y)
@logging_first
def func_minus(x, y):
print( x - y)
@logging_first
def func_multiply(x, y):
print( x * y)
func_sum(20, 30)
func_minus(20, 30)
func_multiply(20, 30)