在python中引发三元语句中的错误,而不使用经典的if / else语法


python中是否可以直接在三元语句中引发错误?

如:

import numpy as np
y = np.random.rand(200, 5, 5)

y = (y[:, None] if y.ndim == 1 
    else y if y.ndim == 2 
    else raise ValueError('`y` must be given as a 1D or 2D array.'))

当然可以使用简单的if / elif / else语句来完成此操作.因此,我要求使用“一行”三元语句专门提出解决方案.

只是为了澄清:
我知道三元语句并不是为了引发错误而且根据PEP8等不是好的风格.我只是想问它是否可能.

最佳答案 简单的简单技术答案:不,这是不可能的 – 正如您可能自己发现的那样,它会产生一个SyntaxtError(raise是一个语句而三元op只支持表达式).

点赞