【发布时间】:2011-04-25 04:42:57
【问题描述】:
我想知道为什么 try-except 比下面程序中的 if 慢。
def tryway():
try:
while True:
alist.pop()
except IndexError:
pass
def ifway():
while True:
if alist == []:
break
else:
alist.pop()
if __name__=='__main__':
from timeit import Timer
alist = range(1000)
print "Testing Try"
tr = Timer("tryway()","from __main__ import tryway")
print tr.timeit()
print "Testing If"
ir = Timer("ifway()","from __main__ import ifway")
print ir.timeit()
我得到的结果很有趣。
Testing Try
2.91111302376
Testing If
0.30621099472
谁能解释一下为什么尝试这么慢?
【问题讨论】:
-
这里并不真正适用,但有时查看
dis.dis(funcname)可以方便地了解某些东西在内部是如何工作的
标签: python performance