【问题标题】: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
这到底是在说什么?
【问题讨论】:
标签:
python
syntax
conditional-operator
【解决方案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。