Could embeded Python echo evaluation?

Tim Peters tim_one at email.msn.com
Sun Feb 20 20:14:29 CET 2000


[Kim Jeong Ju]
> When you run Python in console mode, you can see result string after
> evaluation without any explicit print command.
>
> >>> 3 + 4
> 7
> >>> dir
> <built-in function dir>
>
> But embeded Python doesn't show its result string.
> You should specify 'print' command to see the result as in
> console mode.
> ...
> Why this behavior happens?

Python used to (many years ago) automagically display non-None expression
results in both interactive and batch modes.  There were many complaints
about this behavior in batch mode, especially from people chaining methods
for side effects; e.g.,

    myPoint.moveRight(2).moveUp(6).changeColor(RED)

where each method of myPoint returns "self".  This is a pretty common style.

> Are there any way to let Python echoing result automatically
> in embeded version?

No, not anymore.  The function com_expr_stmt in compile.c compiles different
code depending on whether you're in batch or interactive mode.  In the batch
case it compiles code to throw away the expression result; in the latter
case it generates the PRINT_EXPR opcode that implements the interactive-mode
magic.






More information about the Python-list mailing list