On Saturday 24 August 2002 05:15 pm, Jeremy Hylton wrote: > Good point, Oren. We now have two requirements for interfaces that > are different than the standard inheritance mechanism. It should be > possible to: > > - inherit from a class without implementing that class's interfaces > > - declare that a class implements an interface outside the class > statement > > It's harder to support the second requirement using the current > inheritance mechanism. The second requirement is a good part of what adaptation is meant to do. As I understand, that's exactly what Zope3 already provides for its interfaces. You don't just "declare" the fact -- you register an adapter that can provide whatever is needed to make it so. I.e., if object X does already implement interface Y without ANY need for tweaking/renaming/whatever, I guess the registered adapter can just return the object X it receives as an argument. More often, the adapter will return some (hopefully thin) wrapper over X that deals with renaming, signature-adaptation, and the like. That's how it works in Zope3 (at least as I understood from several discussions with Jim Fulton and Guido -- haven't studied Zope3 yet), and I think that such "external adaptation" functionality, however dressed up, should definitely be a part of whatever Python ends up with. Alex
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4