Python_34有N个参数的装饰器

def outer(f):
def innner(a1,a2):
print ('hello')
print ('hello')
print ('hello')
print ('hello')
print ('hello')
r=f(a1,a2)
return r
return innner

@outer
def f1(a1,a2):
print ('FFFF')
return a1+a2


print (f1(1,2))
————————————————————————————————————————————————————————输出

hello
hello
hello
hello
hello
FFFF
3

不改变原来函数结果的基础上添加参数

变参数个数的函数

可以让函数接受任意个参数  用(*arg)   可以输入任意个同一类型的参数      

用( *arg,**kwargs)可以输入任意万能参数各种类型

def f1(*arg,**kwargs):   

    print (arg)      #arg是一个元组

    print (kwargs)     #kwargs是一个字典

 

 

def f1(*arg):
print (arg)
f1(1234,23,54,6)
输出——————————————————————

(1234, 23, 54, 6)

 

 

def f1(*args,**kwargs):
print (args)
print (kwargs)
f1('d','f','g',d=123)
输出——————————————————————————————————————

('d', 'f', 'g')
{'d': 123}

 

各种参数均可的装饰器:

def zsq(func):
def inner(*args,**kwargs):
print (args)
print (kwargs)
func(*args,**kwargs)
return inner
@zsq
def f1(a1,a2):
print (a1)
print (a2)
f1('d','f')
@zsq
def f2(a1,a2,a3):
print (a1)
print (a2)
f2('d','f','g')



 

posted on 2018-02-27 16:07  JuGooLar  阅读(115)  评论(0编辑  收藏  举报

导航