三元运算符的标准用法是,即:

a = 1 if some_condition else 2

就在今天,我意识到这样的事情是完全合法的:
do_something() if some_condition else do_something_else()

例如:
print(1) if a == 1 else print(2)

代替:
if a == 1:
    print(1)
else:
    print(2)

在我看来,这更紧凑、可读和更漂亮。我看到从这种类型的表达式中获取返回值会更困难(也许方法是将所有内容都用括号括起来)。你怎么看?

附言我知道这不是典型的问答内容,但我从未见过提到的三元运算符的这种用法,我认为它显然改进了 Python 编码的某些方面。

最佳答案

使用三元运算符只是为了副作用非常困惑。表达式应该返回一些东西(让我想起 Is it Pythonic to use list comprehensions for just side effects? :答案是否定的)

你可以重写:

print(1) if a == 1 else print(2)

喜欢:
print(1 if a == 1 else 2)

或重写:
do_something() if some_condition else do_something_else()

至:
(do_something if some_condition else do_something_else)()

所以三元表达式返回一些被副作用表达式使用的东西。

关于python - 使用三元运算符进行方法调用的伦理和可读性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49450740/

10-13 04:26