使用分號我似乎無法得到timeit.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)也會發生同樣的錯誤。
UPDATE:
我以下this documentation(重點煤礦):
類timeit.Timer(語句= '通',設定= '通過',計時器=)
類用於小代碼片段的定時執行速度。
該構造函數需要一個語句定時,一個額外的語句 用於設置和一個計時器功能。兩條語句默認爲 'pass';定時器功能與平臺有關(請參閱模塊doc 字符串)。 stmt和安裝程序可能還包含多個語句分隔 由;或換行符,只要它們不包含多行字符串 文字。
謝謝你..你可以請檢查更新的問題:使用textwrap允許代碼縮進的基礎水平,提高可讀性另一種選擇?實際上'timeit.timeit('a = 1; b = 1')'可以正常工作...... – max 2012-04-24 16:28:17
@max - 分號可以很好地用於分隔具有相同縮進級別的語句,但是可以使用任何空格或製表符分號和下一個語句之間的內容將被忽略,因此您不能使用它們進行縮進。 – 2012-04-24 16:29:45
@max,';'不適用於try/except,for循環,while循環,if塊等等。它只適用於分隔簡單的語句。 – 2012-04-24 16:29:46