Steven D'Aprano writes: > On Thu, Sep 02, 2021 at 04:04:40PM +0900, Stephen J. Turnbull wrote: > > > You may not need to teach them about singletons, though. > > It's hard to teach why `is` works with None,
For definitions of "works" that comes down to "agrees with Nick that 'is' is just a weird way to spell '==' most of the time". But that's not how I think of 'is'. > but not with 1.234 or [], without talking about the object model > and singletons. Object model, of course, but singletons? AFAICS, "singleton" is a red herring here. Object model is important for '[]': there are times where it's important that 'a == b == [] and a is b', and other times where it's important that 'a == b == [] and a is not b'. But from the point of view of beginner education, at least, there's no reason why None and Ellipsis couldn't share a SpecialObjects type (although you couldn't put False and True in there). > To say nothing of why it works with 0 and 1 but not 123456. Case in point for singletons being a red herring. True == 1 but True is not 1 (in Python 3.10). Neither object is a singleton. _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/JEZLLPPTQGO2EPMRS5NHTW5OBSLACO6R/ Code of Conduct: http://python.org/psf/codeofconduct/