何らかの理由でtimeit
、次の例ではPython-2.7関数がクラッシュします。
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
(最初の例)に割り当てることができ、(2番目の例)と比較a
するa+b
ことができるので、なぜ3番目の例を実行できないのですか?!?!もちろん、タイミングを合わせているステートメントは、それ自体、完全に健全です...