gpt4 book ai didi

python - 在 else 中捕获异常

转载 作者:行者123 更新时间:2023-11-28 21:17:04 24 4
gpt4 key购买 nike

这是一个很好的 pythonic 方法来测试相等性,并在 else 中捕获异常吗?

try:
# Check for equality
debug.assert_eq(data, None)
debug.assert_eq(id, None)
debug.assert_eq(time, None)
debug.assert_eq(group, None)

except Exception:
print("OK")

else:
raise Exception('None found')

最佳答案

你的逻辑相当……复杂。如果你想测试这些变量中是否至少一个不是None,那么使用any() :

debug.assert(any(v is not None for v in (data, id, time, group)))

any() 迭代 v is not None for v in (data, id, time, group) 生成器表达式并返回 True 当它遇到 True 结果时。这意味着如果 data 不是 None,则不会测试其他 3 个值。但是,如果所有 4 个值都是 None,则 any() 返回 False 并且断言测试失败。

我不知道您使用什么框架来测试断言,我假设会有一个 .assert() 方法。

当捕获断言失败异常时,我不会捕获Exception,这太宽泛了,会掩盖错误。测试框架将引发特定的异常以表明断言失败,例如内置的 AssertionError .如果必须,请改为捕获该特定异常。

关于python - 在 else 中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com