On 06/06/2012 12:12 AM, News123 wrote:
If I start Python in interactive mode,
and I yype the commands,
'a=3', 'a', 'print a'


Then the output would look like:
 >>> a = 3
 >>> a
3
 >>> print a
3


Now within an application I'd like to achieve exactly this behaviour
Meaning, that
- for assignments nothing is displayed
- for expressions the result of the exprission displayed
- and statements like print statements would be executed


The only thing, that I came up with is following code and that would
even print out results for 'a=3', where the normal interactive python
would not echo any result.

for cmd in [ 'a=3', 'a', 'print a' ] :
try:
print('>>> ' + cmd)
exec('__rslt = ' + cmd)
if __rslt is not None:
print repr(__rslt)
except SyntaxError:
exec(cmd)

The result would look like:
 >>> a=3
3
 >>> a
3
 >>> print a
3
 >>>


Is There anything better?


Thanks a lot Devin,
Following line does the trick:

eval(compile(s, '<string>', 'single'))


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to