2016-10-17 56 views
-7

對於本頁的示例: https://wiki.python.org/moin/CrashingPython#Exhausting_Resources 爲什麼這個案例不能在我的python 2.7中複製 爲什麼它可以使python崩潰?爲什麼python不會在這種情況下崩潰?

$ python 
Python 2.4.2 (#2, Sep 30 2005, 21:19:01) 
[GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> f = lambda: None 
>>> for i in xrange(1000000): 
...  f = f.__call__ 
... 
>>> del f 
Segmentation fault 
+3

錯誤一直在被修復,包括這一項。爲什麼應該有一個具體的解釋,爲什麼這不能在Python 2.7中複製? –

+0

我甚至無法用Python 2.4.6重現這一點,所以這給你一個很好的範圍去搜索[更改歷史記錄](https://hg.python.org/cpython/file/2.4/Misc/NEWS )。 –

+2

在那裏,我們擁有它:http://bugs.python.org/issue532646,在Python 2.4.4中修復。 –

回答

0

這只是一個bug,請參見issue #532646

所有的軟件都有bug,Python項目也不例外。它不能在2.7中複製,因爲該錯誤已被發現並修復。

具體,你的頁面中發現的文件不同的這種崩潰的bug,並在頂部狀態,以便

雖然很多的努力已經進入使它很難或不可能崩潰Python解釋器在正常使用情況下,有很多相當簡單的方法來解釋翻譯。 BDFL最近在python-dev郵件列表中發佈:

我並不是說它是不可解密的。我只是說如果你崩潰了,那麼它就是一個錯誤,除非經過證實。

任何已知的,仍然懸而未決錯誤添加到crashers test suite。如果你關注那些測試的歷史,你將能夠找到更多的破壞者和他們適用的Python版本。大多數需要模糊的設置,像你的問題。

相關問題