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 ?
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to