【发布时间】:2012-12-20 14:27:03
【问题描述】:
由于某种原因,Python-2.7 timeit 函数在以下示例中崩溃:
a,b = 0,0
timeit a=b # ok: 10000000 loops, best of 3: 50.9 ns per loop
timeit if a==a+b: pass # ok: 1000000 loops, best of 3: 129 ns per loop
timeit a=a+b # crashes!
Traceback (most recent call last):
UnboundLocalError: local variable 'a' referenced before assignment
显然,我可以分配给a(第一个示例),我可以将a 与a+b(第二个示例)进行比较,那么为什么我不能运行第三个示例?!?!当然,被计时的语句本身是完美的......
【问题讨论】:
-
你到底是怎么用
timeit的? -
这是无效的 Python 代码。
-
@Roman 这是我使用的完全相同的代码(在命令行上)
-
不,你没有。
timeit是一个函数,而不是一个语句。 -
@Fabian 您能否详细说明为什么它无效?
timeit和a=a+b都是有效的,那么为什么不组合呢?
标签: python crash ipython timeit