加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:09:44 所属栏目:Python 来源:网络整理
导读:在 python中是否可以直接在三元语句中引发错误? 如: import numpy as npy = 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 / eli
在 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只支持表达式).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读