Seite 1 von 1

unterschied zwischen statement und expression herausfinden

Verfasst: Mittwoch 10. Juli 2013, 21:32
von init-0
Hallo,

Ich habe vor mir mehr oder weniger eine eigene pythonshell, die übers netzwerk erreichbar ist, zu programmieren.
Dazu würde ich exec und eval benutzen, aber ich weiß nicht wie ich entscheiden kann welches ich wann benutze, da ich bei statements gerne einen rückgabewert hätte.
Mein bisheriger ansatz funktioniert zwar, ist aber aufgrund vom exceptionhandling irgendwie unschön:

Code: Alles auswählen

>>> def execute(string):
	mode = eval
	try:
		c = compile(string, "<input>", "eval")
	except SyntaxError:
		mode = exec
		c = compile(string, "<input>", "exec")
	return mode (c)

>>> execute("x==1")
False
>>> execute("x=1")
>>> x # = 2 da nur local
2
>>> execute("print('asdf')")
asdf
Gibt es da bessere Möglichkeiten?

Re: unterschied zwischen statement und expression herausfind

Verfasst: Mittwoch 10. Juli 2013, 21:47
von BlackJack
@init-0: Warum startest Du nicht eine echte Python-Shell und kommunizierst mit der über's Netzwerk? Es gibt da so schicke Programme wie ``ssh``. ;-)

Ansonsten musst Du das Rad nicht neu erfinden. In der Standardbibliothek gibt es doch schon das `code`-Modul.