[Python-Dev] PEP 246, redux

Phillip J. Eby pje at telecommunity.com
Wed Jan 12 01:17:23 CET 2005


At 06:38 PM 1/11/05 -0500, Clark C. Evans wrote:
>| To implement a Liskov violation with my proposal, you do exactly the same
>| as with your proposal, *except* that you can simply return None instead
>| of raising an exception, and the logic for adapt() is more
>| straightforward.
>
>I think I prefer just returning None rather than raising a
>specific exception.  The semantics are different: None implies that
>other adaptation mechanisms (like a registry) could be tried, while
>LiskovException implies that processing halts and no further
>adaptation techniques are to be used.  In this case, None is
>the better choice for this particular case since it would enable
>third-parties to register a wrapper.
>
>Overall, I think both you and Alex are now proposing essentially
>the same thing... no?

Yes; I'm just proposing shuffling the invocation of things around a bit in 
order to avoid the need for an exception, and in the process increasing the 
number of possible customizations a bit.

Not that I care about those customizations as such; I just would like to 
simplify the protocol.  I suppose there's some educational benefit in 
making somebody explicitly declare that they're a Liskov violator, but it 
seems that if we're going to support it, it should be simple.



More information about the Python-Dev mailing list