如果我理解正确
myvar = a and b or c
给出与以下结果相同的结果
if a: if b: myvar = b else: myvar = c else: myvar = c
所以我想它更优雅。
我似乎还记得在JavaScript代码中看到过这种短路分配语句。但是在Python中在赋值语句中使用短路是否被认为是好的样式?
这确实是一个意见问题,但在大多数情况下,答案是否定的。它与多种样式指南背道而驰,可能是因为人们倾向于认为它的意思是“如果a为真,则使用b的值,否则使用c的值”,而不是您发布的实际含义。
您可能需要新的条件表达式语法:
myvar = b if a else c