On Sat, Mar 26, 2016 at 12:03 AM, Albert-Jan Roskam <sjeik_ap...@hotmail.com> wrote: >> You should not bother with object identity for objects other than None. > > > A little late to the party, but: how about Ellipsis? Shouldn't "is" also be > used for that one? (It's rare, I know :))
Yes, and also True and False, if you're checking for the specific values. (Though it's more common in Python to merely care about truthiness/falsiness.) Other common identity checks include: if str is bytes: # Python 2 handling, where "native strings" are byte strings else: # Python 3 handling, where "native strings" are text strings if iter(x) is x: # x is an iterator, not some other iterable _SENTINEL = object() def func(arg=_SENTINEL): if arg is _SENTINEL: # arg was not passed Anyone who says that identity checks are only for None is significantly over-simplifying things. This isn't necessarily a bad thing, but it should never be taken to be the whole story. ChrisA -- https://mail.python.org/mailman/listinfo/python-list