2016-04-03 4 views

Antwort

3

Vom doc:

Eine End-of-Datei auf Eingabe als String 'EOF' zurückgeleitet.

was bedeutet, daß Ctrl + D zum do_EOF() Verfahren versandt. So eine Möglichkeit zu geben, Ihre Dolmetscher zu beenden, stellen Sie sicher, do_EOF() zu implementieren und hat es True zurück:

def do_EOF(self, line): 
    return True 
+0

Sorry für den späten Kommentar. Wenn ich 'Strg + D' tippe, wird nur '^ D' gedruckt. Mit 'Strg + C' verlassen Sie die Anwendung, ohne do_EOF aufzurufen. Irgendwelche Hinweise? – Overdrivr

+0

@Overdrivr: Haben Sie irgendeine der 'Cmd' Methoden überschrieben? Wenn ja, müssten Sie den entsprechenden Code posten; Wenn nicht, sollte 'Strg + D' funktionieren, nachdem Sie die obige' do_EOF' Methode zu Ihrer 'Cmd' Unterklasse hinzugefügt haben (ich habe es gerade selbst getestet und es funktioniert). –

+0

Guter Punkt, das Drücken von Strg + D sollte eine KeyboardInterrupt- oder SystemExit-Ausnahme auslösen. Ist das korrekt? – Overdrivr