A.T.Hofkamp a écrit :
Hello all,
Yesterday we found the cause of a bug that has caused problems for a long time.
It appeared to be the following:
class A(object):
pass
print min(1.0, A())
which is accepted by Python even though the A() object is not numerical in
nature.
The cause of this behavior seems to be the compare operation of the object
class.
Is there a way to disable this behavior in Python (other than deriving a new
'object-like' class that doesn't do comparisons?)
Other than implementing a custom __cmp__ function ? Not AFAIK. FWIW, you
don't necessarily need to fiddle with inheritance - you can also
monkeypatch your classes (nb : for new-style objects, you cannot
monkeypatch __magic__ methods on a per-object basis).
Also, IIRC, this behaviour has changed in Python 3.
--
http://mail.python.org/mailman/listinfo/python-list