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
