Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #73581

Re: Single underscore in interactive mode

From Robert Kern <robert.kern@gmail.com>
Subject Re: Single underscore in interactive mode
Date 2014-06-25 18:53 +0100
References <3db49432-3133-414f-9c44-ebb595a7ae8f@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.11237.1403718839.18130.python-list@python.org> (permalink)

Show all headers | View raw


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

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Single underscore in interactive mode candide <c.candide@laposte.net> - 2014-06-25 08:20 -0700
  Re: Single underscore in interactive mode Robert Kern <robert.kern@gmail.com> - 2014-06-25 18:53 +0100
  Re: Single underscore in interactive mode Terry Reedy <tjreedy@udel.edu> - 2014-06-25 14:30 -0400
    Re: Single underscore in interactive mode candide <c.candide@laposte.net> - 2014-06-25 12:39 -0700
  Re: Single underscore in interactive mode Lie Ryan <lie.1296@gmail.com> - 2014-06-25 19:57 +0100
  Re: Single underscore in interactive mode Dave Angel <davea@davea.name> - 2014-06-25 17:56 -0400

csiph-web