私はこれを防ぐために貴重な助言を見つけることができませんでした。私はcmdライブラリの中に入り、メソッドをオーバーライドすることにしました。
IがCMDがを実行することを考え出したが、をprecmd行はをonecmdとを順次方法をPOSTCMD。私はコードを辿り、onecmdが与えられた行を逸脱する主要なものであることを確認します。それは解析をチェックし、次に行をチェックします。行が空の場合は、emptylineメソッドを呼び出し、lastcmdというグローバル変数である最後のコマンドを返します。 emptylineメソッドをオーバーライドして問題が解決しました。
ここに私が上書きした方法があります。
def emptyline(self):
"""Called when an empty line is entered in response to the prompt.
If this method is not overridden, it repeats the last nonempty
command entered.
"""
if self.lastcmd:
return self.onecmd(self.lastcmd)
そして、ここで私のものです:
def emptyline(self):
"""Called when an empty line is entered in response to the prompt.
If this method is not overridden, it repeats the last nonempty
command entered.
"""
if self.lastcmd:
self.lastcmd = ""
return self.onecmd('\n')
は、それは大したことが、念のために念頭に置いてそれを維持しない場合があります。
+1自己回答はSO – msw
のために良いです。ありがとう@msw私はそれが役に立つと願っています。 –
これを理解していただきありがとうございます。私は、このアクションのためにcmdモジュールが提供するデフォルトの動作に困惑しています。 – oneself