2013-03-21 7 views

Antwort

11

Sie müssen die postcmd Methode außer Kraft zu setzen:

Cmd.postcmd (Haltestelle Linie)

Hook-Methode ausgeführt nur, nachdem ein Befehl Versand fertig ist. Diese Methode ist ein Stub in Cmd; Es existiert, um von Unterklassen überschrieben zu werden. Zeile ist die Befehlszeile, die ausgeführt wurde, und stop ist ein Flag, das angibt, ob die Ausführung nach dem Aufruf von postcmd() beendet wird; Dies ist der Rückgabewert der onecmd() -Methode. Der Rückgabewert dieser Methode wird als neuer Wert für das interne Flag verwendet, das stop entspricht. die Rückgabe von false führt dazu, dass die Interpretation fortgesetzt wird.

Und von der cmdloop Dokumentation:

Diese Methode wird zurückkehren, wenn die postcmd() -Methode einen echten Wert zurückgibt. Das stop-Argument für postcmd() ist der Rückgabewert aus der entsprechenden do_ *() -Methode des Befehls .

Mit anderen Worten:

import cmd 
class Test(cmd.Cmd): 
    # your stuff (do_XXX methods should return nothing or False) 
    def do_exit(self,*args): 
     return True 
+0

Ich frage mich, wenn ich nur tun kann 'def do_exit (self, Zeile): return true', so dass die Ausgabe Befehl' exit' die 'cmdloop' ausbrechen . –

+1

Ja, das ist es genau. – isedev