timeit.timeit当我在以字符串形式传递的语句参数中有异常时,我似乎无法工作:
# after the first and third semicolon, I put 4 spaces
timeit.timeit('try:; a=1;except:; pass')
Run Code Online (Sandbox Code Playgroud)
这导致:
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
Run Code Online (Sandbox Code Playgroud)
我用Python 3.3运行它,但即使使用旧的Python(3.2)也会出现同样的错误.
更新:
我正在关注这个文档(强调我的):
class timeit.Timer(stmt ='pass',setup ='pass',timer =)
用于小代码片段的定时执行速度的类.
构造函数接受一个定时语句,一个用于设置的附加语句和一个定时器函数.两个语句都默认为'pass'; 计时器功能与平台有关(请参阅模块文档字符串).stmt和setup也可能包含多个以;分隔的语句; 或换行符,只要它们不包含多行字符串文字.