我应该如何在python中缩进三元条件运算符以使其符合PEP8?

Tor*_*Lev 14 python formatting pep8 ternary

如果我没有弄错的话,PEP8对三元运算符没有任何说明.那么你有什么建议,我应该如何用三元条件运算符编写长行?

some_variable = some_very_long_value \
                if very_long_condition_holds \
                else very_long_condition_doesnt_hold
Run Code Online (Sandbox Code Playgroud)

要么

some_variable = some_very_long_value \
                    if very_long_condition_holds \
                        else very_long_condition_doesnt_hold
Run Code Online (Sandbox Code Playgroud)

你最喜欢哪一个?

Dan*_*man 16

都不是.对于任何长行,通常最好使用括号来允许换行.不管是否应该这样做,意见都有所不同:

some_variable = (some_very_long_value
                if very_long_condition_holds
                else very_long_condition_doesnt_hold)
Run Code Online (Sandbox Code Playgroud)

或这个:

some_variable = (
    some_very_long_value
    if very_long_condition_holds
    else very_long_condition_doesnt_hold)
Run Code Online (Sandbox Code Playgroud)

甚至这个:

some_variable = (
    some_very_long_value
    if very_long_condition_holds
    else very_long_condition_doesnt_hold
)
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢第三个; 谷歌内部风格是第二个.


Mr *_*ooz 5

some_variable = (some_very_long_value
                 if very_long_condition_holds else
                 very_long_condition_doesnt_hold)
Run Code Online (Sandbox Code Playgroud)
  • 根据PEP8,使用括号而不是反斜杠表示行继续。
  • 通过将if ... else构造放在自己的行上,此表达式的三个部分(then表达式,条件部分和else表达式)之间有明显的分隔。的thenelse的表达式被均匀地格式化,并从单独的if...else构建体。