On 2014-06-25 16:20, candide wrote:
According to the official documentation (The Python Language Reference, Release
3.2):
-----------------------------------
The special identifier _ is used in the interactive interpreter to
store the result of the last evaluation;
-----------------------------------
This description is not very specific. Which evaluation is it about ? Consider
the following interactive mode session:
z = 42 + 1
_
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
_
NameError: name '_' is not defined
As explained by the docs, an assignment statement _evaluates_ the expression on the right
hand side. So we can deduce that at the very beginning of the 2nd prompt, "the
result of the last evaluation" is 43. Nevertheless, calling _ raises a NameError
exception!
In fact it seems that underscore returns the value of the last expression
statement which is different from None :
4*10+2
42
_
42
"hello"
'hello'
_
'hello'
print(42)
42
_
'hello'
None
_
'hello'
Can somebody provide a correct specification of the _ identifier in interactive
mode ?
See the documentation on `sys.displayhook()`, which is the function that makes
the assignment:
https://docs.python.org/3/library/sys.html#sys.displayhook
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
--
https://mail.python.org/mailman/listinfo/python-list