changeset 164:8006938c33ac

add fireonce decorator example
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 22 Aug 2011 13:38:28 -0700
parents eb0049718001
children 2269e680a0be
files python/fireonce.py
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/fireonce.py	Mon Aug 22 13:38:28 2011 -0700
@@ -0,0 +1,15 @@
+class fireonce(object):
+    def __init__(self, func):
+        self.func = func
+    def __call__(self, *args, **kwargs):
+        if not self.func:
+            return None
+        retval = self.func(*args, **kwargs)
+        self.func = None
+
+@fireonce
+def foo(x):
+    print x
+    
+foo('bar')
+foo('fleem') # not printed