首页 > 解决方案 > 在 python 三元运算符的上下文中引发错误

问题描述

因此,假设我已经定义了所有必要的变量,并且我想在一行中分配一个带有条件的变量时抛出一个错误:

isTestData,isTrainingData,testData,trainingData=True,False,str,int
def whoops():
    raise

a = testData() if isTestData else TrainingData() if isTrainingData else whoops()

我想知道是否有一些我没有得到的带有 raise 的内置函数或语法......是否有必要用一个衬垫来定义这种行为?

标签: pythonternaryraise

解决方案


python中三元运算符(单行)的基本语法是:

<expr1> if <conditional_expr> else <expr2>

这要求包含在其中的所有实体<>都是一个表达式

笔记:

  • 表达式只能包含标识符、运算符和文字。
  • 语句是可以生成一行/多行 Python 代码的所有内容。
  • 重要的是要注意所有表达式都是语句,反之亦然。

在您的情况下,您不能raise直接在三元运算符(一个衬里)中使用, 因为它会发表声明。


推荐阅读