首先,我必須對我的壞英語表示歉意,但我會盡我所能。遞歸和異常的速度比較 - Python
我有一個關於使用python遞歸和異常計算階乘比較速度的練習。
我寫了代碼:
class MyException(Exception):
def __init__(self, value):
self.value = value
def standardFactorial(n):
if n == 1:
return 1
return n * standardFactorial(n-1)
def factorialWithExceptions(n):
if n == 1:
raise MyException(1)
try:
factorialWithExceptions(n-1)
except MyException as x:
raise MyException(n * x.value)
運行10 000次,300的階乘我得到了類似的結果:
recursion
1.233912572992267
exceptions
9.093736120994436
有人能向我解釋爲什麼差別這麼大? python中的異常太慢了嗎?或者是什麼問題?構建異常堆棧? 感謝您的回覆。
在第二個例子中,你使用遞歸和異常。 –