首页 > 解决方案 > 如何获取代码在特定 if-elif 构造中花费的时间

问题描述

在此处输入图像描述我正在为虹膜本地化提供一段项目代码。所以在这里我想得到一个人花在一个特定方向上的时间。因此,此外,我希望获得代码在特定 if-elif 构造中花费的全部时间。

我已经尝试过使用 timeit 模块。但是我无法获得代码进入 if 部分的时间以及它离开 while 循环的时间。

                thresh = (five_eye[1]-one_eye[1])
                print("thresh:",thresh)
                # if 13<thresh <16:
                #     print('CENTER')
                #     cv2.putText(frameClone, 'CENTER', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                #     single_eye_state.append(index)
                #     single_eye_state.append('CENTER')
                if 10<thresh<=13:
                    start = timeit.timeit()
                    print('Looking Down 1 Feet')
                    cv2.putText(frameClone,'Looking Down 1 Feet', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                    single_eye_state.append(index)
                    single_eye_state.append('DOWN1')
                    end = timeit.timeit()
                    print(end - start)
                elif 7<thresh<=10:
                    start = timeit.timeit()
                    print("Looking Down 2 Feet")
                    cv2.putText(frameClone,'Looking Down 2 Feet', 
(90,40),cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 255), 2)
                    single_eye_state.append(index)
                    single_eye_state.append('DOWN2')
                    end = timeit.timeit()
                    print(end - start)

需要代码在 while 循环中花费的总时间。

标签: pythonpython-3.xif-statementtime

解决方案


if 或 elif 将只运行该部分中的一个。所以最好只包装 if-elif 构造并获取时间,例如:

start = timeit.timeit()
if condition:
    ....
elif:
    ....
end = timeit.timeit()
print(end-start)

如果您想要多个部分的总时间:

total = 0
if condition:
    start = timeit.timeit()
    ....
    end = timeit.timeit()
    total += end - start
elif:
    start = timeit.timeit()
    ....
    end = timeit.timeit()
    total += end - start
print(total)

注意:只有一个部分将运行,即,如果在 elif 上。为了清楚起见,我添加了代码。


推荐阅读