私はこれが良い考えだとは主張していませんが、eval
十分な大きさの入力文字列で実行することでPythonをクラッシュさせることができることを発見しました(2.7と3.2をチェック):
def kill_python(N):
S = '+'.join((str(n) for n in xrange(N)))
return eval(S)
私のコンピューターS
では問題なく生成できますが、値が約のN>74900
場合、Pythonは。で失敗しSegmentation fault (core dumped)
ます。インタプリタが処理できる文字列(または解析ツリー)の長さに制限はありますか?
注:私はこれを行う必要はありません。私にとって、これは箱の中で何が起こっているのかについての私の無知を反映したより深い質問です。ここでPythonが失敗する理由を理解したいので、壊滅的に(例外をスローしないのはなぜですか?)