Reference
Tim Chase
python.list at tim.thechases.com
Mon Mar 3 16:51:12 EST 2014
On 2014-03-03 21:35, Mark Lawrence wrote:
> I'd just like to know why people are so obsessed with identities,
> I've never thought to use them in 10+ years of writing Python. Do
> I use the KISS principle too often?
There are a couple use-cases I've encountered where "is" matters:
1) the most popular:
if foo is None:
do_stuff()
2) sentinels (which are effectively non-None None values)
SENTINEL = object()
def myfuntion(value=SENTINEL):
if value is SENTINEL:
do_something_parameterless()
else:
do_something_else(value) # allow for value=None
3) when doing recursion and you want to prevent touching the same
object multiple times, such as what happens when you do
lst = [1,2,3]
lst.append(lst)
print(lst)
and it needs to recognize that the final element of "lst" is one that
it has already seen (as done by identity).
There might be some other use cases, but #1 is a good 95% of my
usage, #2 is a good 4%, and I can only think of once in my Python
career when I've needed to do what is described in #3.
-tkc
More information about the Python-list
mailing list