このcmd
モジュールは、プログラムへのコマンド ライン インターフェイスを作成するための非常に単純なインターフェイスを提供します。次の行の前にいくつかのバッファ文字を配置できない場合がありますが、コマンドが戻ったことをユーザーに知らせる明確な方法を探している場合は、各行の先頭にシェルのようなプロンプトを表示できますライン。プログラムに既に関数が定義されている場合、それらをプロセッサに統合するには、関数にアクセスするハンドラーを作成するだけです。
import cmd
import math
def findHpyot(length, height):
return math.sqrt(length **2 + height **2)
class MathProcessor(cmd.Cmd):
prompt = "Math>"
def do_hypot(self, line):
x = raw_input("Length:")
y = raw_input("Height:")
if x and y:
try:
hypot = findHypot(float(x), float(y))
print "Hypot:: %.2f" %hypot
except ValueError:
print "Length and Height must be numbers"
def do_EOF(self, line):
return True
def do_exit(self, line):
return True
def do_quit(self, line):
return True
if __name__ == "__main__":
cmdProcessor = MathProcessor()
cmdProcessor.cmdloop()
cmd を使用して対話型シェルを作成する際の考慮事項
- do_ の後の名前は、ユーザーが使用するコマンドであるため、この例では、使用可能なコマンドは hypot、exit、quit、および help になります。
- do_help をオーバーライドせずに help を呼び出すと、使用可能なコマンドのリストが表示されます
- プログラムを終了する呼び出しは、True を返す必要があります。
- 関数呼び出しからのエントリを処理したい場合、たとえば "hypot 3 4" のような呼び出しを処理できるようにしたい場合は、関数呼び出しでローカル ライン変数を使用できます。