def default(defaultval, f, allowNone=False, *args, **kwargs): try: ret = f(*args, **kwargs) if ret is None and not allowNone: return defaultval except Exception as e: return defaultval return ret