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')