这个条件运算符是做啥的? [复制]
Posted
技术标签:
【中文标题】这个条件运算符是做啥的? [复制]【英文标题】:What does this conditional operator do? [duplicate]这个条件运算符是做什么的? [复制] 【发布时间】:2013-02-25 12:57:56 【问题描述】:我不确定如何解释它们,我仍在努力找出它们到底在做什么..
color = self.color2
color = self.fill1 if color == self.fill2 else self.fill2
这到底是在说什么?
【问题讨论】:
这不是列表理解。它更类似于三元条件运算符。 不是一行可读吗?? 【参考方案1】:这称为conditional expression。
表达式 x if C else y 首先计算条件 C (not x);如果 C 为真,则计算 x 并返回其值;否则,计算 y 并返回其值。
所以,你的具体例子相当于:
if color == self.fill2:
color = self.fill1
else:
color = self.fill2
【讨论】:
【参考方案2】:这不是列表理解。它是一种语法糖。 具有讽刺意味的是,它旨在提高可读性。
可以理解为:
if color == self.fill2:
color = self.fill1
else:
color = self.fill2
【讨论】:
【参考方案3】:这是一个conditional expression 请参阅PEP-308。
像这样的
x = true_value if condition else false_value
也可以写成
if condition:
x = true_value
else:
x = false_value
【讨论】:
【参考方案4】:好吧,它说的正是它所说的:如果color
的值等于self.fill1
,则将self.fill1
的值放入color
变量中,否则放入self.fill2
。它被称为三元运算符,你可以找到更多关于它的信息here。
【讨论】:
以上是关于这个条件运算符是做啥的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章