[Python-Dev] containment checking
Glenn Linderman
v+python at g.nevcal.com
Sat Mar 20 00:50:17 CET 2010
On 3/19/2010 3:02 PM, Antoine Pitrou wrote:
> Glenn Linderman<v+python<at> g.nevcal.com> writes:
>
>> >
>> > Sounds to me like containment checking is wrong; that if it gets an
>> > exception during the comparison that it should assume unequal, rather
>> > than aborting, and continue to the next entry.
>>
> Well as the Zen says:
>
> Errors should never pass silently.
> Unless explicitly silenced.
>
> If there's a bug in your __eq__ method, rather than getting wrong containment
> results, you get the proper exception.
>
If there's a bug in your __eq__ method, it may or may not raise an
exception, which may or may not get you wrong containment results. But
it will probably get you buggy results, somehow or another. That's what
design, code reviews, and testing are for.
If the your __eq__ method uses exceptions (the only available method of
out-of-band signalling for binary operators; not all exceptions are
errors) to declare that it can't perform the comparison and produce a
boolean result, that is a case where producing an exception is not an
error, so your quoted Zen doesn't apply.
Glenn
More information about the Python-Dev
mailing list