为闭包加上参数

不同的函数可能需要加不同的参数。所以可以加上不定长参数。例如:

 1 import time
 2 def timmer(func):
 3     def wrapper(*args,**kwargs):
 4         start_time = time.time()
 5         res = func(*args,**kwargs)
 6         stop_time = time.time()
 7         print('程序运行时间%s'%(stop_time-start_time))
 8         return res
 9     return wrapper
10 @timmer  # 相当于 fool = timmer(fool)
11 def fool(name,age):
12     time.sleep(1)
13     print('程序运行完了,名字是【%s】年纪是【%s】'%(name,age))
14     return '这是fool函数的返回值'
15 @timmer  # 相当于 fool = timmer(fool)
16 def fool1(name,age,gender):
17     time.sleep(1)
18     print('程序运行完了,名字是【%s】年纪是【%s】性别是【%s】'%(name,age,gender))
19     return '这是fool函数的返回值'
20 v = fool('李玉玉',age=18)
21 print(v)
22 输出:
23 程序运行完了,名字是【李玉玉】年纪是【1824 程序运行时间1.0006670951843262
25 这是fool函数的返回值

猜你喜欢

转载自www.cnblogs.com/ch2020/p/12376587.html