def abstract( f ):
  def wrap(self, *val, **args):
    f(self, *val, **args)
    raise NotImplementedError(`self.__class__`)
  return wrap

...

class XXX:
  @abstract
  def method( self ): pass

こういうことかなぁ・・