Alan Gauld wrote:

>> Interfaces and abstract classes - I know they don't exist per se in 
>> Python. 
>
>
> First you need to define what you mean by the terms.
> Every class has an interface - it is the set of messages to which it 
> responds.

Yup, I was thinking more in terms of the Java idea, whereby an interface 
is declared specifically and then a class claiming to implement it 
causes compilation problems if it doesn't properly implement it.

>
> An Abstract class is one which is not intended to be instantiated.
>
> class AbstractClassError(Exception): pass
>
> class Abstract:
>    def __init__(self): raise AbstractClassError

Yes, this and the code below with it are very similar to the common 
idiom for abstract classes (in Python) that I see quite often.

>
>> But what are the closest analogues? I've found a few examples, 
>
>
> Assuming you mean Interface in the Microsoft/Java specific sense of 
> the term rather than the simple OOP sense, then an Interface class is 
> simply an abstract  class with empty methods.
>
> class InterfaceError(Exception): pass
>
> class Interface(Abstract):
>    def myMethod(self): pass
>    def myOther(self): raise InterfaceErrror
>
> Does that do what you want?

I presume the "def myMethod(self): pass" is just for an 'optional' part 
of the interface?

The above code does serve the purpose of making an interface more 
explicit, which is helpful. I have seen this use before and  I was just 
wondering if there was any other common ways to make interfaces more 
explicit. Thanks!

Btw, I notice this email list sends the emails with the originator as 
the sender, and CC'd to the [email protected] address. Is it standard 
here to reply to the email address of the sender of the message you're 
replying to, as well as the list itself, or should I be trimming out the 
sender email and just replying to the list only?
thanks,
alex





_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to