内联条件介于两个以上的值之间

时间:2014-12-15 21:01:04

标签: python if-statement

我需要做这样的事情:

if A
 function(a)
elif B
 function(b)
else
 function(c)

我在这里找到了更简单的版本:

function(a if A else c)

elif有版本吗?类似的东西:

function(a if A b elif B else c)

我应该怎么写(如果存在的话)?上面的代码看起来不正确。

1 个答案:

答案 0 :(得分:8)

不,不是elif。只需链接if s:

function(a if A else b if B else c)

相当于(由precedence从左到右):

function(a if A else (b if B else c))

显然这可能会变得复杂(并且超过PEP8 80 char限制),E.G。:

move(N if direction == "N" else E if direction == "E" else S if direction == "S" else W)

在哪种情况下,较长的形式更好:

if direction == "N":
    move(N)
elif direction == "E":
    move(E)
elif direction == "S":
    move(S)
else:
    move(W)