[Python-ideas] Simplicity of C (was why is design-by-contracts not widely)
Elazar
elazarg at gmail.com
Sun Sep 30 08:32:16 EDT 2018
On Sun, Sep 30, 2018, 15:12 Stephen J. Turnbull <
turnbull.stephen.fw at u.tsukuba.ac.jp> wrote:
> Steven D'Aprano writes:
>
> > (4) Inheritance
> >
> > Contracts are inherited, unit tests are not.
>
> What does "inherited" mean? Just that methods that are not overridden
> retain their contracts?
>
Contracts are attached to interfaces, not to specifications. So when you
have abstract base class, it defines contracts, and implementing classes
must adhere to these contracts - the can only strengthen it, not weaken it.
This way the user code need pnly be aware of the specification, not the
implementation.
So method that _are_ overridden retain their contracts.
This is precisely like with types, since types are contracts (and vice
versa, in a way).
Elazar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180930/06407c57/attachment.html>
More information about the Python-ideas
mailing list