Why do operators and methods of built-in types differ
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Sat Jan 31 10:16:03 EST 2009
En Sat, 31 Jan 2009 11:03:13 -0200, andrew cooke <andrew at acooke.org>
escribió:
>
>> Just a correction: according to the doc, NotImplemented is not an
>> error, but a returned value.
>
> curious, so it is. i wonder why there is both a special return value
> (NotIMplemented) and a related exception (NotImplementedError). seems
> very odd to have a value...
I consider it an optimization. Raising an exception is more costly than
returning a value, and this failure is likely to happen often (not all
types define all possible operators). AFAIK this is only recognized by the
binary operators (__add__, __iadd__, etc) and rich comparisons (__eq__,
__lt__, etc.)
--
Gabriel Genellina
More information about the Python-list
mailing list