callable virtual method

Jean-Michel Pichavant jeanmichel at sequans.com
Sun Aug 16 10:13:46 EDT 2009


Christian Heimes wrote:
> Jean-Michel Pichavant wrote:
>> talking about approaches:
>>
>> 1/
>> class Interface:
>>     def foo(self):
>>        if self.__class__.foo == Interface.foo:
>>           raise NotImplementedError
>>
>> 2/
>> class Interface:
>>     def foo(self):
>>        self._foo()
>>
>>     def _foo(sef):
>>        raise NotImplementedError
>
> Please don't call it an interface when it's really an abstract base 
> class. And abstract base classes are probably the solution the OP is 
> looking for, http://docs.python.org/library/abc.html
>
> Christian
>
Sadly I'm working with python 2.4. Anyway it's good to hear they've 
added ABC support to python, didn't know that. I didn't know there was a 
difference between interface and abstract classes as well. With a little 
bit of googling, I found out that actually Interface classes do not 
provide any implementation.
What I'm looking for is definitely an abstract class.

JM



More information about the Python-list mailing list