On Thu, Feb 14, 2013 at 10:03 AM, Philipp Hagemeister <phi...@phihag.de> wrote: > So any implementation has to choose one of the following: > > 1. Ignore invariants and postconditions of inherited classes - defeats > the purpose. > 2. Only respect definitions in classes and methods in the original > definition, which would be unpythonic > 3. Only respect the "original" definitions, for some value of original. > Simarily, this would break monkey patching. > 4. Update all subclasses whenever something changes. > 5. Traverse the entire class hierarchy for every method call. > > Which option should be picked?
#5, with the expectation that like assertions the entire machinery would be turned off when the -O flag is passed, or perhaps even requiring a special flag to enable in the first place. Contracts and invariants would only be used in development work, not in production code. -- http://mail.python.org/mailman/listinfo/python-list