[Zope-dev] Re: [Geeks] Re: Interface Meta Data proposal

Guido van Rossum guido@python.org
Tue, 28 Nov 2000 16:55:03 -0500


> I notice you mention post/pre conditions (something that UML obviously talks
> about).  I wonder if we want to do a bit of research on Eiffle and it's
> contractual description.  The only thing I wonder is if some of this is
> actually useful programatically, if that makes sense? It's great info, but
> is it useful at runtime?

In Eiffel (I've never heard of Eiffle :-), pre- and post-conditions
are turned into run-time checks, just like assertions.  There are
separate flags to turn code generation for pre- and post-conditions
off.  This is useful, as follows: while debugging your code, turn both
on.  When you've fully debugged an application, you turn both off.
When you've fully debugged a library module, you create two versions:
one with both turned off, for use in fully debugged applications, and
one with pre-conditions on and post-conditions off, for use by other
code that is still in need of debugging.

I've heard that this works very well, and in Python 3000 (when we have
optional static typing) I would love to add this to Python.  If it's
not feature bloat.

--Guido van Rossum (home page: http://www.python.org/~guido/)