#装饰器用法,好处
#简化代码,避免重复性代码
#打印日志 @log
#检测性能 @performance
#数据库事务 @transaction
#URL路由 @post('/register')
简单例子:
@new_addlog
def function(x):
return x*2
等价于===>>
def function(x):
return x*2
function=new_addlog(function)
#修饰器用法1
'''
def reducedata(x):
return x*2
def addlog(f):
def newFunction(data):
print('call: '+f.__name__+'()...',data)
return (f(data))
return newFunction
reducedata = addlog(reducedata)
print(reducedata(5))
'''
#修饰器用法2
def addLOG(f):#指针地址不能带参
def log(x,y):
print('call: '+f.__name__)
return f(x,y)
return log
@addLOG
def add(x,y):
return x+y
print(add(5,6))
#按照道理应该cpp也能这么做,但逻辑太复杂,py风格比较好理解,
#将需要扩展的api封装起来,增加需要的功能,完成之后,在执行封装的api,就这么简单