2016-04-01 10 views
-1

Wie würden Sie die IDLE-Shell erstellen, die nur Python-Code verwendet? Jetzt verstehe ich die Bettlinge, wie eine einfache Exec (raw_input ('>>')), aber wie würdest du bekommen, wenn Statements oder für und while-Loops funktionieren würden?Wie würden Sie eine Python-Shell in Python machen?

während 1 == 1:

ungültig Syntax berücksichtigt. Wie würden Sie das verhindern?

Der vorgeschlagene Thread ist nicht annähernd das Gleiche, da alle Antworten bis auf eine Antwort die Ausführung eines Python-Programms aus einem Python-Programm beantworten. Einer der Antworten zeigt ein bisschen wie das, was ich frage, aber es würde immer noch in einer if-and-else-Anweisung oder einer while- oder for-Schleife fehlschlagen.

+0

Was meinst du mit 'while 1 == 1:' ist ungültige Syntax? Es ist vollkommen in Ordnung. Hast du vergessen, einen Loop-Körper zu setzen, als du es ausprobiert hast? – user2357112

+0

Wenn ich die IDLE-Shell in Python machen müsste, würde es wahrscheinlich in etwa so aussehen: https://github.com/python/cpython/tree/master/Lib/idlelib – Ryan

+0

@ user2357112 Ich meine, wenn mein Code exec war (' während 1 == 1: '), würde dies zu einem Fehler führen. Das heißt, wenn ich die Shell mache, kann ich einfach keine rohe Eingabe ausführen. – DevilApple227

Antwort

0

Der Quellcode für IDLE befindet sich in der Python-Standardbibliothek unter dem idlelib-Paket. Sie können look at the source sehen, wie sie alles implementieren.

idlelib ist eine Menge Code, also könnte es überwältigend sein, es zu versuchen. Die code module bietet eine Python-Implementierung von Pythons interaktivem Modus; Sie könnten durch die source code for that gehen, um eine Vorstellung davon zu bekommen, wie Sie Dinge tun könnten.

Verwandte Themen