为什么python在这种情况下没有崩溃?

时间:2016-10-17 10:10:55

标签: python

对于此页面中的示例: https://wiki.python.org/moin/CrashingPython#Exhausting_Resources 为什么这个案例无法在我的python 2.7中重现 为什么它会让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

1 个答案:

答案 0 :(得分:0)

这只是一个错误,请参阅issue #532646

所有软件都有错误,Python项目也不例外。它无法在2.7中复制,因为找到并修复了该错误。

具体来说,您找到的页面记录了各种此类崩溃错误,并在顶部指出

  

虽然在正常使用中很难或不可能使Python解释器崩溃,但是有许多相当简单的方法可以使解释器崩溃。 BDFL最近在python-dev邮件列表上发音:

     
    

我不是说它不可救药。我说如果你崩溃了,除非经过证明,否则它就是一个错误。

  

crashers test suite添加了任何已知但仍然未解决的错误。如果您追溯这些测试的历史记录,您将能够找到更多的crashers以及它们适用的Python版本。大多数都需要像你问题中那样模糊的设置。