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

Reply via email to