我想時間下面的函數,但它顯示我的錯誤,無法導入名稱val_in_range,錯誤是什麼,有沒有其他方法可以做得更好?Timeit計時python函數
import timeit
x = 10000000
def val_in_range(x, val):
return val in range(x)
print (val_in_range(x,x/2))
timeit.timeit('val_in_range(x,x/2)', 'from __main__ import val_in_range, x', number=10)
輸出:
True
Traceback (most recent call last):
File "python", line 11, in <module>
File "<timeit-src>", line 3, in inner
ImportError: cannot import name 'val_in_range'
我把這個確切的代碼放在一個源文件中(添加一個shebang,'#!/ usr/bin/env python3')並運行它,它運行良好。這是你的真實代碼嗎?爲了比較,我在Linux上運行Python 3.5。 – ShadowRanger
嘗試在這裏 - https://repl.it/DTwI, – garg10may
該鏈接要麼緩慢或打破了我,但無論如何,我不會嘗試在這裏使用在線口譯員;他們可能會使用奇怪的機制來執行代碼(例如,通過'eval' /'exec'),這些機制與腳本或普通交互式解釋器的標準Python行爲不匹配(例如,代碼可能不會在'__main__ ',或者它定義的值在代碼完成之前不會在那裏設置,否則這會破壞你的測試用例)。 – ShadowRanger