如果我没有弄错的话,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
您最喜欢哪一个?
都不是。对于任何长线,通常最好使用括号来允许换行。不管您是否应该这样做,意见都有所不同:
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
)
我个人更喜欢第三个;谷歌的内部风格是第二个。
some_variable = some_very_long_value\
if very_long_condition_holds\
else othervalue
面对这样的问题时更喜欢牙套。
在这里查看最大线路长度。 http://legacy.python.org/dev/peps/pep-0008/#maximum-line-length
some_variable = (some_very_long_value
if very_long_condition_holds else
very_long_condition_doesnt_hold)
- 根据PEP8,使用括号而不是反斜杠表示行继续。
- 通过把
if ... else
在它自己的路线上构建,这个表达的三个部分之间有明显的分离: then
表达式,条件部分和 else
表达。该 then
和 else
表达式统一格式化并与之分离 if...else
构造。