On Mar 17, 2010, at 1:59 PM, Steven D'Aprano wrote: > On Thu, 18 Mar 2010 07:44:21 am Raymond Hettinger wrote: >> The spectrum of options from worst to best is >> 1) compare but give the wrong answer >> 2) compare but give the right answer >> 3) refuse to compare. > > Why is 3 the best? If there is a right answer to give, surely giving the > right answer it is better than not?
From the early days of the decimal module, we've thought that mixed float-decimal operations are 1) a bit perilous and 2) have few, if any good use cases. Accordingly, any mixed operations should be explicit rather than implicit: Decimal('1.1') + Decimal.from_float(2.2) is better than: Decimal('1.1') + 2.2 To help the user avoid confusion, we flag the latter with a TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'. Unfortunately, in Py2.x, implicit mixed comparisons do not raise an exception, and instead will silently fail by giving an incorrect answer: >>> Decimal('1.1') < 2.2 False IMO, raising the exception is the right thing to do. Short of that though, if we're going to give a result, it should at least be a correct one. Raymond New zen: * right answers are better wrong * but ill-formed questions are best not answered at all
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com