我想时间下面的函数,但它显示我的错误,无法导入名称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