是否有某种内置的封装
def produces_exception(func, args=args, args=kwargs, exception=Exception)
try:
func(*args, **kwargs)
except e:
return False
else:
return True
答案 0 :(得分:2)
不,在Python标准库中没有做到这一点的
答案 1 :(得分:0)
为了记录(作为此类问题用例的答案-它实际上并未回答问题,但可能会帮助类似问题的人),我想使用此情况< / p>
some_iter_that_might_be_empty = get_iter()
is_empty = produces_exception(next, [some_iter_that_might_be_empty], exception=StopIteration)
可以轻松地重写为
some_iter_that_might_be_empty = get_iter()
is_empty = next(some_iter_that_might_be_empty, False)
因此,显然,在许多情况下,此行为是不必要的,因为存在更好的解决方案。也就是说,将这种行为封装在可能不是这种情况下会很好。