内联分配ifelse在Python中引发错误

我正在做一些验证,写起来会很方便(Pythonic?)

my_variable = value if condition else raise ValueError('Bla bla bla')

我已经尝试过但不允许。有什么方法可以做类似的事情并避免更麻烦的“传统方式”?

if condition:
    my_variable = value
else:
    raise ValueError('Bla bla bla')

回答

它不起作用,因为在 之后需要else一个表达式,而不是一个语句。

可以通过定义一个通用函数来解决这个问题:

def _raise(exception_type, msg):
    raise exception_type(msg)

my_variable = value if condition else _raise(ValueError, 'bla bla')

但是我会在真正的代码中这样做吗?可能不是。它不像替代方案那样具有可读性,并且可能会在阅读代码时增加心理负担。


以上是内联分配ifelse在Python中引发错误的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>