python中的最大行长度

时间:2012-03-27 19:05:51

标签: python emacs

在python中进行编码时,我是否仍应遵循79 char的最大行长度规则。

如果是的话  所以什么时候使用enter和\来换行。

例如

qy = MyModel.objects.filter(name='abcd', modified_on__range=
                                         (now-delta_6, now),type=1) \
                                         .select_related('Author')

我使用emacs进行python编码。 所以当我使用enter for line breacking时,我可以使用tab来缩进,有时候我必须使用\来缩进

所以最好的方法就是这样做。

由于

2 个答案:

答案 0 :(得分:7)

PEP 8建议最大行长度为79个字符,我通常不会发现太难遵循此建议。

同样根据PEP 8,我试图依赖于括号内的隐含线延续。给出的示例可以很容易地分成两个语句:

qy = MyModel.objects.filter(
    name='abcd', modified_on__range=(now - delta_6, now),type=1)
qy = qy.select_related('Author')

如果你的代码执行了大量的方法链接,你可能更喜欢添加一对parens以获得隐式行继续:

qy = (MyModel.objects
      .filter(name='abcd', modified_on__range=(now - delta_6, now),type=1)
      .select_related('Author'))

这会将每个链式方法放在一条线上,这样就可以很容易地看到所涉及的步骤。

答案 1 :(得分:2)

如果您想遵循PEP 8指南,我会像这样重写您的代码:

qy = MyModel.objects.filter(name='abcd',
                            modified_on__range=(now-delta_6, now),
                            type=1).select_related('Author')

至于你是否应该遵循PEP 8中建议的最大线路长度,这完全取决于你。

PEP 8旨在提高Python代码的可读性,79字符行长度用于与某些宽度受限的设备兼容,并且易于并行查看代码。我有相当宽的屏幕,所以即使我尝试大多数时间都遵循PEP 8,如果我觉得分裂线会降低可读性,我会忽略这一规则。