timeit.timeit
ステートメント引数に文字列として渡された例外があると、動作しないようです。
# after the first and third semicolon, I put 4 spaces
timeit.timeit('try:; a=1;except:; pass')
これにより、次のようになります。
Traceback (most recent call last):
File "a.py", line 48, in <module>
timeit.timeit('try:; a=1;except:; pass')
File "C:\CPython33\lib\timeit.py", line 230, in timeit
return Timer(stmt, setup, timer).timeit(number)
File "C:\CPython33\lib\timeit.py", line 136, in __init__
code = compile(src, dummy_src_name, "exec")
File "<timeit-src>", line 6
try:; a=1;except:; pass
^
SyntaxError: invalid syntax
Python 3.3で実行していますが、古いPython(3.2)でも同じ間違いが発生します。
アップデート:
私はこのドキュメントに従っていました(私の強調):
class timeit.Timer(stmt ='pass'、setup ='pass'、timer =)
小さなコードスニペットの実行速度のタイミングのクラス。
コンストラクターは、タイミングをとるステートメント、セットアップに使用される追加のステートメント、およびタイマー関数を受け取ります。どちらのステートメントもデフォルトで「pass」になっています。タイマー機能はプラットフォームに依存します(モジュールのドキュメント文字列を参照)。stmtとsetupには、;で区切られた複数のステートメントが含まれる場合もあります。または改行(複数行の文字列リテラルが含まれていない場合)。