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

时间:2014-10-07 10:04:47

标签: python formatting pep8 ternary

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

some_variable = some_very_long_value \
                if very_long_condition_holds \
                else very_long_condition_doesnt_hold

some_variable = some_very_long_value \
                    if very_long_condition_holds \
                        else very_long_condition_doesnt_hold

你最喜欢哪一个?

2 个答案:

答案 0 :(得分:15)

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

some_variable = (some_very_long_value
                if very_long_condition_holds
                else very_long_condition_doesnt_hold)

或者这个:

some_variable = (
    some_very_long_value
    if very_long_condition_holds
    else very_long_condition_doesnt_hold)

甚至是这样:

some_variable = (
    some_very_long_value
    if very_long_condition_holds
    else very_long_condition_doesnt_hold
)

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

答案 1 :(得分:1)

some_variable = some_very_long_value\
                if very_long_condition_holds\
                else othervalue
当遇到这样的问题时,

更喜欢大括号。 在这里查看最大线路长度。 http://legacy.python.org/dev/peps/pep-0008/#maximum-line-length