python - 如何在不在多个地方调用时间的情况下对多个功能进行计时?
问题描述
我试图弄清楚如何在不增加多行时间的情况下对多个功能(单个执行时间)进行计时。
这是我尝试过的:
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))
当我尝试运行它时,我相信这些函数在列表中运行。
试图弄清楚如何让这个工作。
谢谢
解决方案
这应该可以解决您所说的问题:
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
关键字基本上只是定义单行函数的一种快速方法,查看这个解释以了解更多信息。
推荐阅读
- swift - 该命令取决于目标“MyApp”(项目“MyApp”)中的命令:脚本阶段“[CP] Copy Pods Resources”
- entity-framework - 将实体添加到列表时出现 EF Core 跟踪问题
- node.js - 当代码说返回 500 时,为什么这条快速路线返回 200 状态代码?
- windows - HID 提交 HID_XFER_PACKET 以模拟击键
- php - PHP数组拆分成自定义句子?
- angular - 如何通过角度订阅从嵌套接口变量中获取数据?
- angular - TS2339:“AbstractControl”类型上不存在属性“控件”
- database - Sybase IQ:在 Sybase IQ 中是否存在类似于 ROW CHANGE (DB2)/ORA_ROWSCN (Oracle) 的功能?
- android - 如何计算 POI 的位置并将它们显示在相机上
- laravel - Laravel 迁移:重命名和添加具有相似名称的列最终出现错误