>>>
>>> def myexec(s):
... eval(compile(s, '<string>', 'single'))
...
>>> x = 3
>>> myexec('x = 4')
>>> myexec('x')
3
>>> myexec('print x')
3
>>>
On Tue, Jun 5, 2012 at 6:12 PM, News123 <[email protected]> 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?
>
>
>
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
--
http://mail.python.org/mailman/listinfo/python-list