changeset 525:37f8bc525888

-> example
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 24 Sep 2013 12:32:50 -0700
parents dbe9086643bf
children 4063bbeaa7d4
files python/abstract.py python/example/abstract.py
diffstat 2 files changed, 39 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/python/abstract.py	Tue Sep 24 12:29:59 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-
-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)
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/example/abstract.py	Tue Sep 24 12:32:50 2013 -0700
@@ -0,0 +1,39 @@
+
+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)
+
+