提问人:accidental_denver 提问时间:7/8/2023 最后编辑:accidental_denver 更新时间:7/8/2023 访问量:41
在 Python 中提出赋值异常是不好的做法吗?
is raising exceptions on assignment bad practise in python?
问:
考虑以下示例,其中我必须将许多变量分配给可能返回 None 的函数调用。如果它们确实返回 None,则必须引发异常。
some_variable = some_function_call()
if not some_variable:
raise AnException(...)
一遍又一遍地这样做最终会变得乏味且难以阅读。
我应该有没有其他方法可以避免所有这些?if not x: raise Exc
写这样的东西会是不好的做法吗?如果是这样,为什么?
def raise_exception(exc):
raise exc
some_variable = some_function_call() or raise_exception(AnException())
答:
0赞
user2390182
7/8/2023
#1
你的方法本身没有错。也许赋值表达式更具可读性:
if not (some_variable := some_function_call()):
raise AnException(...)
评论
0赞
accidental_denver
7/8/2023
像这样的东西就是我一直在寻找的。就像你说的比我写的更清楚。谢谢你。
评论
assert ( some_variable := f() ), "my error message"
assert
None
TypeError
AttributeError
some_function_call
None
None
None