import functools def maybe(fn): @functools.wraps(fn) def wrapper(*args, **kwargs): try: return fn(*args, **kwargs) except Exception: return None return wrapper @maybe def divide(num, den): return num / den def is_just(maybe_val): return maybe_val is not None def is_nothing(maybe_val): return maybe_val is None print(is_just(divide(1, 2))) print(is_nothing(divide(1, 0))) print(is_just(divide(1, 0))) print(is_nothing(divide(1, 2)))