Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. def foobar(arg):
  2. if arg == 'foo':
  3. return None
  4. else:
  5. return 'bar'
  6.  
  7. foobar('sdfsdgf').upper()
  8. foobar('foo').upper()
  9.  
  10. tmp = foobar('foo')
  11. if tmp is not None:
  12. tmp.upper()
  13. # or
  14. try:
  15. foobar('foo').upper()
  16. except ArgumentError:
  17. pass
  18. # or
  19. caller = lambda x: x.upper() if type(x) is str else None
  20. caller(foobar('foo'))
  21.  
  22. (foobar('foo') or '').upper()
  23.  
  24. def forward_none(func):
  25. def wrapper(arg):
  26. return None if arg is None else func(arg)
  27. return wrapper
  28.  
  29. forward_none(str.upper)(foobar('foo'))
  30.  
  31. @forward_none
  32. def do_interesting_things(value):
  33. # code that assumes value is not None...
  34.  
  35. do_interesting_things(None) # ignores the original code and evaluates to None
  36. do_interesting_things("something") # as before decoration
  37.  
  38. from pymaybe import maybe
  39. maybe(foobar('foo')).upper()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement