status of Programming by Contract (PEP 316)?

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Thu Aug 30 09:43:32 EDT 2007


Russ a écrit :
>>>That looks like new syntax to me.
>>
>>It's the syntax for decorator functions, and it's not that new - it
>>cames with Python 2.4, released November 30, 2004.
> 
> 
> After looking more carefully at your example, I don't think it is as
> clean and logical as the
> PEP 316 syntax. 

Possibly not, but at least it's trivial to implement.

> At first I thought that your pre and post-conditions
> applied to the class,

Pre and post conditions applying to the class ? Now that's an 
interesting concept. IIRC, Eiffels pre and post conditions only apply to 
methods, and I fail to see how they could apply to a class. But since 
you're an expert on the subject, I don't doubt you'll enlighten us ?

> but now I realize that they apply to the function. I prefer to see the
> conditions inside
> the function in the doc string.  That just seems more logical to me.

Not to me. Doc strings are not for implementation. But if you want to 
implement a DbC module using doc strings, please do so.

> With all due respect,
> your proposal is interesting, but I think it overextends the "function
> decorator" idea a bit.

Definitively not, on the contrary - that's *exactly* what decorators are 
for. Else, they would be nothing more than HOFs, and there would be no 
point in having this syntactic sugar.

(snip).



More information about the Python-list mailing list