#通过debug在第一行打断点调试就可以很清楚的知道注解的执行流程
print("=====python功能加强=====")
### 当使用@时调用,并且将变量传递进来
def annotation(a_value):
print ("init annotation ==>> :" + a_value)
### 当使用@时调用,并且将被加强的函数当作参数传入进来
def function(function_name):
print("init =>> function : " + str(a_value) + " " + str(function_name))
### 当被加强的方法调用时加强功能才被调用
def arguments(**parameter):
print("call ==>> : " + str(a_value) + " " + str(function_name))
return function_name(**parameter)
return arguments
return function
### @annotation(a_value="test") 可以转变为 test=annotation(a_value="test")()
@annotation(a_value="test")
def test():
print "ok"
### 使用代码方式展现功能加强
def x():
print "x"
t = annotation("call test")(x)
print("====================")
t()