Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #66251
| References | (6 earlier) <ldibhu$2g5$1@ger.gmane.org> <mailman.6834.1392292646.18130.python-list@python.org> <roy-141A69.10240713022014@news.panix.com> <CAPTjJmrzoyGc5EKFD1wYYROeWGaphRUNWHKZkG0N_XJxkw_cVQ@mail.gmail.com> <ldjch4$d5r$1@ger.gmane.org> |
|---|---|
| Date | 2014-02-14 08:27 +1100 |
| Subject | Re: singleton ... again |
| From | Chris Angelico <rosuav@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.6890.1392326879.18130.python-list@python.org> (permalink) |
On Fri, Feb 14, 2014 at 8:13 AM, Robert Kern <robert.kern@gmail.com> wrote:
> We don't use `is None` instead of `== None` for the speed. We use it for
> robustness. We don't want arbitrary __eq__()s to interfere with our sentinel
> tests. If None weren't a singleton that we could use as such a sentinel,
> we'd make one.
Sure. Yes, its identity is important as part of its being the Python
equivalent of C's null pointer. But the main point of singletons is to
be able to be "instantiated" without creating new elements; the
sentinel status of None is no different from the classic way of
recognizing the presence of an argument:
_SENTINEL = object()
def foo(arg1, arg2=_SENTINEL):
if arg2 is not _SENTINEL: do_stuff_with(arg2)
That's not a singleton in that sense; it's just a unique object. You
could use [] for that instead of object() and it would work just the
same. So None is serving multiple purposes: it's an empty object, but
it's also a sentinel. In many uses, it wouldn't be a problem to have
more Nones floating around, hence it's mostly like your classic
singleton.
My main point about mutable vs immutable is more clearly seen with
integers and strings. Some integers are cached; some strings are
interned; nobody particularly cares about the exact boundaries, except
when playing around with id() or introspection of some sort.
ChrisA
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-11 20:34 -0800
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-11 21:15 -0800
Re:singleton ... again Dave Angel <davea@davea.name> - 2014-02-12 00:48 -0500
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-12 00:55 -0500
Re: singleton ... again Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-12 23:04 +1300
Re: singleton ... again Ben Finney <ben+python@benfinney.id.au> - 2014-02-12 21:09 +1100
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-12 08:40 -0500
Re: singleton ... again Piet van Oostrum <piet@vanoostrum.org> - 2014-02-13 10:00 +0100
Re: singleton ... again Ned Batchelder <ned@nedbatchelder.com> - 2014-02-13 06:50 -0500
Re: singleton ... again Chris Angelico <rosuav@gmail.com> - 2014-02-13 22:57 +1100
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-13 10:24 -0500
Re: singleton ... again Chris Angelico <rosuav@gmail.com> - 2014-02-14 07:03 +1100
Re: singleton ... again Robert Kern <robert.kern@gmail.com> - 2014-02-13 21:13 +0000
Re: singleton ... again Chris Angelico <rosuav@gmail.com> - 2014-02-14 08:27 +1100
Re: singleton ... again Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 08:57 -0800
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-13 12:57 -0500
Re: singleton ... again Ethan Furman <ethan@stoneleaf.us> - 2014-02-13 10:31 -0800
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-13 14:03 -0500
Re: singleton ... again Chris Angelico <rosuav@gmail.com> - 2014-02-14 06:50 +1100
Re: singleton ... again Grant Edwards <invalid@invalid.invalid> - 2014-02-13 22:28 +0000
Re: singleton ... again Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-14 18:21 +1300
Re: singleton ... again Tim Delaney <timothy.c.delaney@gmail.com> - 2014-02-14 06:16 +1100
Re: singleton ... again Steven D'Aprano <steve@pearwood.info> - 2014-02-13 02:58 +0000
Re: singleton ... again Ben Finney <ben+python@benfinney.id.au> - 2014-02-13 14:07 +1100
Re: singleton ... again Steven D'Aprano <steve@pearwood.info> - 2014-02-13 04:24 +0000
Re: singleton ... again Chris Angelico <rosuav@gmail.com> - 2014-02-13 15:33 +1100
Re: singleton ... again Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-14 18:15 +1300
Re: singleton ... again Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-14 18:06 +1300
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 09:50 -0800
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 09:56 -0800
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 09:58 -0800
Re: singleton ... again Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-02-13 10:57 +1300
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 17:38 -0800
Re: singleton ... again Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-12 18:57 +0000
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 17:02 -0800
Re: singleton ... again Ned Batchelder <ned@nedbatchelder.com> - 2014-02-12 16:34 -0500
Re: singleton ... again Asaf Las <roegltd@gmail.com> - 2014-02-12 17:34 -0800
Re: singleton ... again Tim Delaney <timothy.c.delaney@gmail.com> - 2014-02-13 10:08 +1100
Re: singleton ... again Roy Smith <roy@panix.com> - 2014-02-12 20:57 -0500
Re: singleton ... again Michael Torrie <torriem@gmail.com> - 2014-02-12 15:05 -0700
csiph-web