2008/03/07
Python の IDLE 環境は初心者向けの環境である。本来ならば動作するはずの Python のプログラムが IDLE 環境で正しく動作しない場合がある。
次の図は EDLE 環境で sys.exit() を実行した場合にエラーが発生する事を示している。
これはバグか? バグだとしても除去しにくいバグである。
sys.exit() は Python を終了する事を意味している。ところが IDLE の Python シェルもまた Python で動いているので sys.exit() が実行されるという事は IDLE の全体が終了する事を意味している。しかしそれは如何にも都合が悪い。EDLE はそれを辛うじて防いでいると言える。
同様な問題は Tkinter の mainloop で発生し、Python がハングする。
Traceback (most recent call last): File "/Volumes/kenji/edu/prog2/2007/05m3109.py", line 55, in <module> mainloop() File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 328, in mainloop _default_root.tk.mainloop(n) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk/Tkinter.py", line 1405, in __call__ raise SystemExit, msg SystemExit
このような問題を避けるため Python IDLE のメニューには "Restart Shell" が存在する。