On May 16, 7:23 am, Bruno Desthuilliers <bruno. [EMAIL PROTECTED]> wrote: > Kay Schluehr a écrit : > > > > > > > On 16 Mai, 10:03, "A.T.Hofkamp" <[EMAIL PROTECTED]> wrote: > >> 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?) > > > Are you sure you don't want to use a statically typed language that > > captures all type errors just by inspecting your source code? > > This is not necessarily a static vs dynamic typing problem. The > following code will raise a TypeError for very good reasons: > > print 1.0 + A()- Hide quoted text - > > - Show quoted text -
I question the real-world examples of coercion, casting, and upcasting. C insists that defining by operator, which may or may not relate to system, is the only legal move. I doubt operator+ is well- defined on non-ideal structures. Rationals are not floats, but system got checked. Define concurrency. -- http://mail.python.org/mailman/listinfo/python-list