Hi fellows,

Does anyone know a way to write virtual methods (in one virtual class) that will raise an exception only if called without being overridden ? Currently in the virtual method I'm checking that the class of the instance calling the method has defined that method as well.

Example:

class Stream(object):
   """Interface of all stream objects"""
   def resetStats(self):
"""Reset the stream statistics. All values a zeroed except the date."""
       _log.info('Reset statistics of %s' % self)
       if self.__class__.resetStats == Stream.resetStats:
           raise NotImplementedError()

It works but it's tedious, I have to add these 2 lines to every virtual method, changing the content of the 2 lines.

Maybe there is a nice/builtin way to do so (python 2.4)

JM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to