赋值语句中的短路是否被认为是好的样式?

发布于 2021-01-29 14:56:26

如果我理解正确

myvar = a and b or c

给出与以下结果相同的结果

if a:
  if b:
    myvar = b
  else:
    myvar = c
else:
  myvar = c

所以我想它更优雅。

我似乎还记得在JavaScript代码中看到过这种短路分配语句。但是在Python中在赋值语句中使用短路是否被认为是好的样式?

关注者
0
被浏览
93
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这确实是一个意见问题,但在大多数情况下,答案是否定的。它与多种样式指南背道而驰,可能是因为人们倾向于认为它的意思是“如果a为真,则使用b的值,否则使用c的值”,而不是您发布的实际含义。

    您可能需要新的条件表达式语法:

    myvar = b if a else c
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看