Mercurial > hg > config
view python/abstract.py @ 333:998d3c276b25
http://askubuntu.com/questions/168117/how-to-automatically-add-meta-tags-to-screenshot?rq=1
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 18 Jun 2013 14:44:14 -0700 |
parents | fe8befc5bdfc |
children |
line wrap: on
line source
def abstractmethod(method): line = method.func_code.co_firstlineno filename = method.func_code.co_filename def not_implemented(*args, **kwargs): raise NotImplementedError('Abstract method %s at File "%s", line %s should be implemented by a concrete class' % (repr(method), filename, line)) return not_implemented class AbstractBaseClass(object): @abstractmethod def foo(self, arg): """foo does such and such""" @abstractmethod def bar(self): """bar does something else""" class ConcreteClass(AbstractBaseClass): def foo(self, arg): print 'hello' if __name__ == '__main__': c = ConcreteClass() c.foo(1) a = AbstractBaseClass() try: a.foo(1) except NotImplementedError, e: print e try: a.bar() except NotImplementedError, e: print e c.foo(1) a.foo(1)