[Python-ideas] Simplicity of C (was why is design-by-contracts not widely)

Chris Angelico rosuav at gmail.com
Sat Sep 29 22:17:25 EDT 2018


On Sun, Sep 30, 2018 at 11:54 AM Steven D'Aprano <steve at pearwood.info> wrote:
> This discussion is for those of us who would like to include DbC in our
> projects but don't like existing solutions. C++ being designed with a
> shovel is not relevant.
>
> (Except in the sense that we should always be careful about piling on
> feature upon feature into Python.)

And as such, I do not want to see dedicated syntax for no purpose
other than contracts. What I'm interested in is (a) whether something
can and should be added to the stdlib, and (b) whether some specific
(and probably small) aspect of it could benefit from language support.
As a parallel example, consider type hints. The language has ZERO
support for special syntax for a language of types. What you have is
simple, straight-forward names like "List", and the normal behaviours
that we already can do such as subscripting. There is language
support, however, for attaching expressions to functions and their
arguments.

At the moment, I'm seeing decorator-based contracts as a clunky
version of unit tests. We already have "inline unit testing" - it's
called doctest - and I haven't seen anything pinned down as "hey, this
is what it'd take to make contracts more viable". Certainly nothing
that couldn't be done as a third-party package. But I'm still open to
being swayed on that point.

ChrisA


More information about the Python-ideas mailing list