Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def foobar(arg):
- if arg == 'foo':
- return None
- else:
- return 'bar'
- foobar('sdfsdgf').upper()
- foobar('foo').upper()
- tmp = foobar('foo')
- if tmp is not None:
- tmp.upper()
- # or
- try:
- foobar('foo').upper()
- except ArgumentError:
- pass
- # or
- caller = lambda x: x.upper() if type(x) is str else None
- caller(foobar('foo'))
- (foobar('foo') or '').upper()
- def forward_none(func):
- def wrapper(arg):
- return None if arg is None else func(arg)
- return wrapper
- forward_none(str.upper)(foobar('foo'))
- @forward_none
- def do_interesting_things(value):
- # code that assumes value is not None...
- do_interesting_things(None) # ignores the original code and evaluates to None
- do_interesting_things("something") # as before decoration
- from pymaybe import maybe
- maybe(foobar('foo')).upper()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement