Are there 'Interfaces' in Python??

Richard Jones richard at bizarsoftware.com.au
Tue Sep 25 22:42:29 EDT 2001


On Wednesday 26 September 2001 11:50, Paul Rubin wrote:
> "tszeto" <tszeto at mindspring.com> writes:
> > Was wondering if Python supported 'Interfaces' (something akin to Java
> > interfaces)? Or if there's a workaround to get the same thing.
>
> Java interfaces are a workaround for java's non-support of multiple
> base classes in objects.  Python supports multiple base classes, so
> it doesn't need a workaround for their absence.

Er, no. They may be percieved as that, but since interfaces can't actually 
_do_ anything, whereas multiple inheritance _can_, I believe this is a dead 
herring.

Interfaces are an extremely useful form of "type" checking for OO systems. 
Python already has "interfaces" in the form of agreed methods - witness the 
"pass a file-like object" requirements in a lot of APIs. An interface would 
just formalise that.

There are proposals for interfaces floating around - I believe the Python 
Enhancement Proposal 245 is gaining popularity.

   "Python Interface Syntax"
   http://python.sourceforge.net/peps/pep-0245.html


      Richard




More information about the Python-list mailing list