Programming by Contract

Ethan Furman ethan at
Thu Aug 6 01:29:17 CEST 2009


I have seen posts about the assert statement and PbC (or maybe it was 
DbC), and I just took a very brief look at pycontract 
( and now I have at least one 
question:  Is this basically another way of thinking about unit testing, 
or is the idea of PbC more along the lines of *always* checking the 
input/output of functions to ensure they are correct?  (*Contstant 
vigilance!* as Prof Moody would say ;)

I know asserts can be turned off, so they obviously won't work for the 
latter case, and having seen the sample of pycontract it seems it only 
does its thing during debugging.

So is Design (Programming) by Contract a fancy way of saying "Document 
your inputs/outputs!" or is there more to it?


More information about the Python-list mailing list