[Python-Dev] PEP 246, redux (original) (raw)

Phillip J. Eby pje at telecommunity.com
Tue Jan 11 20:48:39 CET 2005


At 01:50 PM 1/11/05 -0500, Clark C. Evans wrote:

On Tue, Jan 11, 2005 at 12:54:36PM -0500, Phillip J. Eby wrote: | * Replacing LiskovViolation is possible by dropping type/isinstance | checks from adapt(), and adding an isinstance check to | object.conform; Liskov violators then override conform in their | class to return None when asked to conform to a protocol they wish to | reject, and return super().conform for all other cases. This | achieves your use case while simplifying both the implementation and the | usage.

I'd rather not assume that class inheritance implies substitutability,

Hm, you should take that up with Alex then, since that is what his current PEP 246 draft does. :) Actually, the earlier drafts did that too, so I'm not sure why you want to change this now.

What I've actually suggested here actually allows for inheritance=substitutability as the default, but also makes it trivially changeable for any given inheritance hierarchy by overriding conform at the base of that hierarchy, and without introducing a special exception class to do it.



More information about the Python-Dev mailing list