- cmd.Cmdクラスを継承したクラスを作る
- do_XXXメソッドを定義する
- cmdloopメソッドを呼ぶ
cmd.Cmdクラスを継承したクラスを作る
特に言うべきことはありません。普通に継承するだけです。
class HelloCmd(cmd.Cmd): ...
do_XXXメソッドを定義する
メソッド名の"XXX"がコマンドになります。
パラメータを受け取るためのargパラメータがポイントです。
def do_hello(self, arg): print 'hello, ' + str(arg)
cmdloopメソッドを呼ぶ
クラスをインスタンス化し、cmdloopを呼ぶとREPLがスタートします。
終了するにはCtrl-Cで落とします。
>>> HelloCmd().cmdloop() (Cmd) hello Taro Hello, Taro (Cmd) Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/cmd.py", line 130, in cmdloop line = raw_input(self.prompt) KeyboardInterrupt
以下Tips。必須ではありませんが、知っておくと便利です。
Ctrl-Cで無理やり落とすのはスマートじゃありません。終了するためのメソッドを定義すれば、キレイに終了します。終了するには、Trueを返します。
docstringがヘルプになる
do_XXXメソッドにdocstringを書いておくと、helpコマンドから参照できます。
参考
cmd — Support for line-oriented command interpreters
def do_quit(self, arg): print 'bye' return True ... >>> HelloCmd().cmdloop() (Cmd) quit bye
docstringがヘルプになる
do_XXXメソッドにdocstringを書いておくと、helpコマンドから参照できます。
def do_quit(self, arg): '''quit cmd loop.''' print 'bye' return True ... >>> HelloCmd().cmdloop() (Cmd) help quit quit cmd loop.
参考
cmd — Support for line-oriented command interpreters
0 件のコメント:
コメントを投稿