如何根据PEP8拆分多个命令?

时间:2015-12-08 12:10:54

标签: python pep8

我有以下命令:

DataFrame = df0.join(df1, how = 'outer').join(df2, how = 'outer').join(df3, how = 'outer').....

我知道我可以把它分开,就像这样:

dataFrame = df0.join(df1, how = 'outer')
dataFrame = dataFrame.join(df2, how = 'outer')
dataFrame = dataFrame.join(df3, how = 'outer')
...

但是我不确定PEP8对此有什么说法,不超过79字符限制的首选方法是什么?

3 个答案:

答案 0 :(得分:2)

在点后插入换行符。如果用paratheses包围整个语句,你甚至不需要尾随反斜杠。

dataFrame = (df0.
             join(df1, how='outer').
             join(df2, how='outer').
             join(df3, how='outer'))

答案 1 :(得分:1)

  

包装长行的首选方式是在括号,括号和大括号内使用Python的隐含的行延续。通过在括号中包装表达式,可以在多行中分割长行。这些应该优先使用反斜杠进行续行。

     

反斜杠有时可能仍然合适。例如,long,多个with - 语句不能使用隐式延续,因此可以接受反斜杠:

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())
     

另一个这样的案例是assert语句。

     

确保适当缩进续行。打破二元运算符的首选位置是在运算符之后,而不是在它之前。

     

- https://www.python.org/dev/peps/pep-0008/

即。为你的例子:

dataFrame = (df0.join(df1, how='outer').
                 join(df2, how='outer').
                 join(df3, how='outer'))

答案 2 :(得分:-1)

您不应该仅仅为了满足PEP而创建虚拟变量。 但是,这里建议的是将命令拆分为几个

DataFrame = df0.join(df1, how = 'outer') \
               .join(df2, how = 'outer') \
               .join(df3, how = 'outer')

最后,在某些情况下,你不能让行短于80个字符!