我试图弄清楚如何对多个功能(单独的执行时间)进行计时,而不用多行地增加时间。
这是我尝试过的:
func_list = [m1strat(kite, state,bnf_qty=100),nifty_m1strat(kite, nifty_state, q_h = nifty_qty_d,q_n = nifty_qty),\
bnf_maintainpos_fut(kite, trail=0.4),nifty_maintainpos_fut(kite, trail=0.4),bank_nifty_opt(kite,order_df),\
nifty_opt(kite,order_df),maintain_pos(kite)]
def time_taken(func_list):
import time
for func in func_list:
start = time.time()
try:
func
except:
traceback.print_exc()
pass
end = time.time()
print('Time taken by' + func + ': '+ str(start-end))
当我尝试运行此代码时,我相信这些功能会在列表中运行。
试图弄清楚如何使它工作。
谢谢
答案 0 :(得分:1)
这应该可以解决您指出的问题:
func_list = [lambda: m1strat(kite, state,bnf_qty=100),
lambda: nifty_m1strat(kite, nifty_state, q_h = nifty_qty_d,q_n = nifty_qty),
lambda: bnf_maintainpos_fut(kite, trail=0.4),
lambda: nifty_maintainpos_fut(kite, trail=0.4),
lambda: bank_nifty_opt(kite,order_df),
lambda: nifty_opt(kite,order_df),maintain_pos(kite)]
def time_taken(func_list):
import time
for func in func_list:
start = time.time()
try:
func
except:
traceback.print_exc()
pass
end = time.time()
print('Time taken by' + func + ': '+ str(start-end))
Python中的lambda
关键字基本上只是定义单行函数的一种快速方法,请查看this explanation来了解更多信息。