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


Groups > comp.lang.python > #73580

Single underscore in interactive mode

X-Received by 10.66.142.9 with SMTP id rs9mr4656965pab.47.1403709635416; Wed, 25 Jun 2014 08:20:35 -0700 (PDT)
X-Received by 10.140.108.66 with SMTP id i60mr12836qgf.39.1403709635360; Wed, 25 Jun 2014 08:20:35 -0700 (PDT)
Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!uq10no9677086igb.0!news-out.google.com!q9ni7qaj.0!nntp.google.com!i13no347905qae.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups comp.lang.python
Date Wed, 25 Jun 2014 08:20:35 -0700 (PDT)
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=82.245.68.143; posting-account=J_U-0woAAACrUCMCI_QdLAKny8A2zeDX
NNTP-Posting-Host 82.245.68.143
User-Agent G2/1.0
MIME-Version 1.0
Message-ID <3db49432-3133-414f-9c44-ebb595a7ae8f@googlegroups.com> (permalink)
Subject Single underscore in interactive mode
From candide <c.candide@laposte.net>
Injection-Date Wed, 25 Jun 2014 15:20:35 +0000
Content-Type text/plain; charset=ISO-8859-1
Content-Transfer-Encoding quoted-printable
Xref csiph.com comp.lang.python:73580

Show key headers only | View raw


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 ?

Back to comp.lang.python | Previous | NextNext 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