[Python-Dev] PEP 246, redux (original) (raw)
Clark C. Evans cce at clarkevans.com
Thu Jan 13 18:09:15 CET 2005
- Previous message: [Python-Dev] PEP 246, redux
- Next message: [Python-Dev] Recent IBM Patent releases
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Jan 14, 2005 at 12:30:17AM +1000, Nick Coghlan wrote: | Anyway, I'd like to know if the consensus I think you've reached is the | one the pair of you think you've reached :)
This stated position is not the current PEP status, and it's not a concensus position I share.
| That is, with A being our starting class, C being a target class, and F | being a target interface, the legal adaptation chains are: | # Class to class | A->C | # Class to interface, possibly via other interfaces | A(->F)*->F
PEP246 should not talk about legal or illegal adaption chains, all adaption chains should be explicit, and if they are explicit, the programmer who specified them has made them legal.
| With a lookup sequence of: | 1. Check the global registry for direct adaptations | 2. Ask the object via conform | 3a. Check using isinstance() unless 2 raised LiskovViolation | 3b. Nothing, since object.conform does an isinstance() check | 4. Ask the interface via adapt
These are OK up to 4.
| 5. Look for transitive chains of interfaces in the global registry.
No! No! No! Perhaps...
5. Raise a AdaptionFailed error, which includes the protocol
which is being asked for. This error message _could_ also
include a list of possible adaptation chains from the global
registry, but this is just a suggestion.
| 3a & 3b are the current differing answers to the question of who should | be checking for inheritance - the adaptation machinery or the conform | method.
Correct. I think either method is OK, and perfer Phillip's approach.
Best,
Clark
-- Clark C. Evans Prometheus Research, LLC. http://www.prometheusresearch.com/ o office: +1.203.777.2550 ~/ , mobile: +1.203.444.0557 // (( Prometheus Research: Transforming Data Into Knowledge \ , / - Research Exchange Database /\ - Survey & Assessment Technologies ` \ - Software Tools for Researchers ~ *
- Previous message: [Python-Dev] PEP 246, redux
- Next message: [Python-Dev] Recent IBM Patent releases
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]