On 09/12/10 08:53, John Nagle wrote: > On 9/11/2010 9:36 AM, Lie Ryan wrote: >> On 09/12/10 00:33, Bearophile wrote: >> >>> ---------------- >>> >>> Lately while I program with Python one of the D features that I most >>> miss is a built-in Design By Contract (see PEP 316), because it avoids >>> (or helps me to quickly find and fix) many bugs. In my opinion DbC is >>> also very good used with doctests. >> >>> You may implement a poor's man DbC in Python like this: >> >> I would do it like this: > > Design by contract really isn't a good fit to Python. I've > done proof of correctness work, and there are suitable languages > for it. It needs a language where global static analysis is > possible, so you can reliably tell what can changes what.
As long as you're not using some funny magic (e.g. monkey patching); then IMO python copes reasonably well. Though, I agree, Python probably isn't really suitable for formal proofing (the best way to assert program's correctness in python is by unittesting, which isn't a formal proof, just one that works most of the time). -- http://mail.python.org/mailman/listinfo/python-list