2012-03-27 87 views
1

在python中編碼時,我是否應該遵循最大行長度79字符的規則。Python中的最大行長度

如果是的話 所以什麼時候用enter和\換行。

例如,

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

我用emacs我的蟒蛇編碼。 因此,當我使用輸入爲行突破有時我可以使用製表符縮進和某些時候我必須使用\的縮進

所以什麼是最好的方式來做到這一點。

感謝

+1

您是否閱讀過[PEP 8](http://www.python.org/dev/peps/pep-0008/)? – delnan 2012-03-27 19:07:09

+0

是的。仍然不清楚。 – pythonhmmm 2012-03-27 19:09:20

+1

你打破了任意的專欄......例如,你爲什麼不用逗號打破?另外,看到這條線太長了,爲什麼你真的在那條線上執行對'select_related'的調用? – 2012-03-27 19:10:05

回答

7

的79個字符的最大行長度由PEP 8建議,和我平時並不覺得太難接受此建議。

另外根據PEP 8,我嘗試依靠括號內隱含的行連續。給出的例子可以很容易地分裂成兩個語句:

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

如果你的代碼執行了很多方法鏈的,你可能更喜歡添加一對括號來獲取隱含行延續:

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

這將每一個鏈接的方法放在它自己的一行上,從而一眼就可以輕鬆查看所涉及的步驟。

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,但如果我覺得分割線會降低可讀性,那麼我會忽略這一規則。