On Sat, Mar 26, 2016 at 12:03 AM, Albert-Jan Roskam
<[email protected]> 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