phil hunt wrote: > Suppose I'm writing an abstract superclass which will have some > concrete subclasses. I want to signal in my code that the subclasses > will implement certan methods. Is this a Pythonic way of doing what > I have in mind: > > class Foo: # abstract superclass > def bar(self): > raise Exception, "Implemented by subclass" > def baz(self): > raise Exception, "Implemented by subclass" > > class Concrete(Foo): > def bar(self): > #...actual implemtation... > def baz(self): > #...actual implemtation...
Yes, but raise NotImplementedError instead of Exception. Another trick you can use is to prevent people from instantiating the abstract class: class Foo: def __init__(self): if self.__class__ is Foo: raise NotImplementedError ... def bar(self): raise NotImplementedError -- Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/ San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis Everything's gonna be all right / Everything's gonna be okay -- Sweetbox -- http://mail.python.org/mailman/listinfo/python-list