# 使用装饰器无参数的函数进行装饰
# def func(funcionName):
# print('-----1------')
# def func_in():
# print('--func_in---')
# funcionName()
# print('--func_2---')
# print('-----2------')
# print('-----3------')
# return func_in
# @func # test = func(test)
# def test():
# print('----testa=%d,b=%d-----'%)
# test()
# -----1------
# -----2------
# -----3------
# --func_in---
# ----test-----
# --func_2---
# 使用装饰器对有参数的函数进行装饰
# def func(funcionName):
# print('-----1------')
# def func_in(a,b): #如果a,b没有定义,那么会导致40号调用失败
# print('--func_in---')
# funcionName(a,b) # 如果没有把a,b当做实参进行传递,那么会导致调用37行失败
# print('--func_2---')
# print('-----2------')
# print('-----3------')
# return func_in
# @func
# def test(a,b): #37行
# print('----test---a=%d,b=%d-----'%(a,b))
# test(10,11) #40行
# 对不定性参数传递
def func(funcionName):
print('-----func---1------')
def func_in(*args,**kwargs):
# *args 将来是以元组保存,没有进行拆包
# **kwargs 将来是以字典保存,没有进行拆包
print('--func_in---1---')
funcionName(*args,**kwargs)
print('--func_in----2---')
print('-----func---2------')
return func_in
@func
def test(a,b,c):
print('----test---a=%d,b=%d,c=%d-----'%(a,b,c))
@func
def test2(a,b,c,d):
print('----test---a=%d,b=%d,c=%d,d=%d-----'%(a,b,c,d))
test(10,11,9)
test2(10,11,9,11)
# -----func---1------
# -----func---2------
# -----func---1------
# -----func---2------
# --func_in---1---
# ----test---a=10,b=11,c=9-----
# --func_in----2---
# --func_in---1---
# ----test---a=10,b=11,c=9,d=11-----
# --func_in----2---
来源:https://www.cnblogs.com/sklhtml/p/9447194.html