Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. import types
  2.  
  3. from functools import wraps
  4.  
  5. def recurse(replace_fn):
  6. def _recurse(fn):
  7.  
  8. @wraps(fn)
  9. def wrapper(self):
  10. v = fn(self)
  11.  
  12. @recurse(replace_fn)
  13. @wraps(fn)
  14. def replacement(self):
  15. return replace_fn(v)
  16.  
  17. setattr(self, fn.__name__, types.MethodType(replacement, self))
  18. return v
  19. return wrapper
  20. return _recurse
  21.  
  22. class Wtf(object):
  23.  
  24. @recurse(lambda x: (x + 1) % 12)
  25. def up_to_eleven(self):
  26. return 0
  27.  
  28. x = Wtf()
  29.  
  30. for i in range(0, 15):
  31. print x.up_to_eleven()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement