静かなる名辞

pythonとプログラミングのこと


【python・ネタ】exit()ではなくexitで終了できるexitコマンドを作る

概要

 むしゃくしゃして書いた。冷静に考えたら疲れてた。

問題点

>>> exit
Use exit() or Ctrl-Z plus Return to exit

 ウザい! exitで落ちるようにしたい!

実装

 簡単に書けます。5行くらい。

import sys
class Exit:
    def __repr__(self):
        sys.exit()
exit = Exit()

 __repr__を悪用します。あとは、適当な方法で起動時に読み込まれるようにしておきます。

 参考:
pythonインタプリタ起動時に良く使うmoduleをimportする - Qiita
IPython起動時にいつも使うモジュールをimportする設定 - Qiita
【Python学習】Python起動時に自動でスクリプトを実行する方法 – SECAT

 exitするとそのまま落ちるようになります。

まとめ

 実用するなよ!

 次は「Ctrl-d, Ctrl-cのキーイベントを乗っ取って終了不可能な対話的インタプリタを作る」方法でも考えようかな・・・。

追記

 exitそのもののクラスにモンキーパッチを当てた方がスマートでは? という考えのもと、こう書いてみました。

import sys
type(exit).__repr__ = lambda self: sys.exit()

 成功。2行に短縮。