2009-10-23 25 views
21

Gibt es eine Möglichkeit, einen Code in IDLE einzufügen? Das Einfügen von Zeile für Zeile funktioniert, aber manchmal möchte ich viele Zeilen gleichzeitig einfügen. Wenn ich es versuche, liest IDLE die erste Zeile und ignoriert den Rest.Mehrere Zeilen in IDLE einfügen

>>> a = 1 
b = 2 
c = 3 

>>> 
>>> a 
1 
>>> b 

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    b 
NameError: name 'b' is not defined 

Antwort

21

Wahrscheinlich nicht das schönste Verfahren, aber das funktioniert:

cmds = ''' 

Ihre Befehle einfügen, gefolgt von ''':

a = 1 
b = 2 
c = 3 
''' 

Dann exec(cmds) sie ausgeführt wird.

oder mehr direkt,

exec(''' 

dann Befehle einfügen, gefolgt von '''):

a = 1 
b = 2 
c = 3 
''') 

Es ist nur ein Trick, vielleicht gibt es eine offizielle, elegante Art und Weise.

+1

, das funktioniert, aber ich hatte wirklich gehofft, für etwas eleganter. Es ist ziemlich üblich, eine Reihe von Zeilen in IDLE einzufügen. Testen von Teilen von Code von einer IDE oder von laufenden Sachen, die auf SO oder was auch immer veröffentlicht werden. – foosion

+1

Ja, ich stieß oft auf das gleiche Problem und stellte mir die gleiche Frage ... Gleiches passiert beim Einfügen von eingerückten Teilen des Codes, "gelöst" durch Eingabe von "if True" und Einfügen des Codes. Ein bisschen ein schmutziger Trick ;-) – RedGlyph

+0

mit Pyscriptor .. Kopieren Sie Code von irgendwo sagen Sie eine Funktion ... und dann rechts klicken in Interpreter ... wählen Sie "einfügen und ausführen". und das wird gut für mehrzeilige Paste funktionieren. – ihightower

6

IdleX bietet die PastePyShell.py-Erweiterung für IDLE, die das Einfügen mehrerer Zeilen in die Shell zur Ausführung ermöglicht.

Verwandte Themen