> > There's another issue that Jim Fulton likes to bring up, IIRC. If > > class Super implements IInterface, does class Sub(Super) also > > (automatically) implement IInterface? > > > > I could be totally misremembering, but I believe that Jim would say > > "no". Class Sub would have to explicitly declare that it also > > implements IInterface. > > I fully agree with Jim. Inheritance is often the handiest way to > _implement_ some things, but not if it comes with a mandatory > contract that you have to respect (specifically, supplying some > interfaces because your superclasses supply them). I'm happy to allow for a way to state explicitly that Sub doesn't implement IInterface, despite deriving from Super which does. But I think it ought to inherit this property by default (this is in fact what Zope does AFAIK). Otherwise creating minor variations on a class would be quite a pain -- you'd have to repeat all the interfaces implemented by the base class; and what if a later version of Super implements more interfaces? I would think that it's much more common to extend a class while maintaining its contract than to inherit for implementation only, even though there are important examples of the latter. --Guido van Rossum (home page: http://www.python.org/~guido/)
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