Stefan Krah added the comment: On Tue, Apr 05, 2016 at 02:20:19PM +0000, Robert Smallshire wrote: > >> Were float to inherit from Rational, rather than Real ... > > > This would break the Liskov substitution principle. > > How so? Rational extends Real with only numerator, denominator and > __float__. Isn't the existence of float.as_integer_ratio demonstration that > numerator and denominator could be implemented?
Substitution principle: Let phi(x) be a property provable about objects x of type T. Then phi(y) should be true for objects y of type S where S is a subtype of T. Use: Let phi(n) = forall n: n elt nat => (1 / n) * n == 1 Counterexample: n == 9992 ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26680> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com