Mercurial > hg > config
annotate python/example/fireonce.py @ 708:fa6c6f64e12b
rename
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Wed, 03 Sep 2014 18:45:04 -0700 | 
| parents | dbe9086643bf | 
| children | 
| rev | line source | 
|---|---|
| 
164
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
1 class fireonce(object): | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
2 def __init__(self, func): | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
3 self.func = func | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
4 def __call__(self, *args, **kwargs): | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
5 if not self.func: | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
6 return None | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
7 retval = self.func(*args, **kwargs) | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
8 self.func = None | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
9 | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
10 @fireonce | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
11 def foo(x): | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
12 print x | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
13 | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
14 foo('bar') | 
| 
 
8006938c33ac
add fireonce decorator example
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
15 foo('fleem') # not printed | 
