In article <4ed15825$0$21841$426a3...@news.free.fr>,
 candide <candide@free.invalid> wrote:

> In which cases should we use the is() function ? The is() function 
> compares identity of objects rather than values so I was wondering in 
> which circumstances comparing identities of objects is really vital.
> 
> Examining well reputated Python source code, I realize that is() 
> function is mainly used in the following set form :
> 
> spam is None
> 
> But how much "spam is None" is different from "spam == None" ?

It's the difference between *being* None, and being equal to None.  For 
example:

class Spam:
    def __eq__(self, other):
        return not other

spam = Spam()
print spam is None
print spam == None

When I run that, it prints:

False
True

In practice, when you compare something to None, you usually want the 
"is" form.  In cases where either would work (i.e. 99% of the time), 
it's convention (and/or good practice) to use "is" because it more more 
clearly expresses what it is that you're trying to do.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to