Python Basic Doubt

Chris Angelico rosuav at gmail.com
Sat Aug 10 21:32:19 EDT 2013


On Sun, Aug 11, 2013 at 2:25 AM, Terry Reedy <tjreedy at udel.edu> wrote:
> On 8/10/2013 8:42 PM, Gary Herron wrote:
>
>> But for each of your examples, using "==" is equivalent to using "is".
>> Each of
>>      if something == None
>>      if device == _not passed
>>      if device != None
>> would all work as expected.  In none of those cases is "is" actually
>> needed.
>
>
> class EqualAll:
>     def __eq__(self, other): return True

That's a contrived example, of course, but it's easy to have a bug in
__eq__ that results in the same behaviour. I can't imagine any code
that would actually WANT that, unless you're trying to represent
Animal Farm.

class EqualAll:
    def __eq__(self, other):
        if (isinstance(other, pig): return 3   # Some are more equal than others
        return True

ChrisA



More information about the Python-list mailing list