On 8/29/2012 11:04 AM, Franck Ditter wrote:
I use Python 3.2.3 + Idle. Is it possible to program test(e) which takes an expression e and whose execution produces at the toplevel an echo of e and the effects and result of its evaluation ?
No, not as Python is delivered.
# file foo.py def foo(x) : print('x =',x) return x+1 test(foo(5)) # RUN ! # produces at the toplevel : ? foo(5) x = 5 --> 6 I know I could put the expression e within a string, but is it possible to avoid the string, like a Lisp macro ?
It might be possible to write an IDLE extension that would 'process' interactive input looking for (untested) re pattern something like 'test\((.*)\)'. Given a match, it prints the captured .* part and passes it on to the Python interpreter, and prefixes output with '-->'.
(I have not yet looked at how to write extensions.) -- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list