python装饰器在传*args与**kwargs时 要在装饰函数中最后调用被装饰函数的参数列表中加入这两个变量
def deco(func): #3
def wrap(*args, **kwargs):#5
print 'blala' #6
func(*args, **kwargs) #7
return wrap #4
@deco # 2
def need_deco(*args, **kwargs): #8
print args, kwargs #9
need_deco() # 1
# 调用函数的时候顺序#1-9
python 中的装饰器
def decora(func):
def wrap():
print 's'
func()
return wrap
@decora
def need_deco():
print 'need'
need_deco()
上面的等同于
def decora(func):
def wrap():
print 's'
func()
return wrap
def need_deco():
print 'need'
w = decora(need_deco)
w()
# 其中 @符号只是一个快捷方式
<span style="font-size:14p