我需要做这样的事情:
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)
我应该怎么写(如果存在的话)?上面的代码看起来不正确。
答案 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)