2013-05-06 84 views
1

串的多頭排列,帶有註釋的行寬超過80個字符:如何PEP8與評論

MIDDLEWARE_CLASSES = (
    'mydogslow.middleware.MyWatchdogMiddleware', 
    'gattlib.djangomiddleware.SetRemoteAddrFromXRealIP', 
    'i18n.middleware.SetLanguageMiddleware', 
    'whitelabels.middleware.SetWhitelabelMiddleware', # after SetLanguageMiddleware 
    'myaffiliateprogram.middleware.BlockReferringURLs', 
) 

最自然的方式,我可以打破它是這樣的:

MIDDLEWARE_CLASSES = (
    'mydogslow.middleware.MyWatchdogMiddleware', 
    'gattlib.djangomiddleware.SetRemoteAddrFromXRealIP', 
    'i18n.middleware.SetLanguageMiddleware', 
    'whitelabels.middleware.' 
     'SetWhitelabelMiddleware', # after SetLanguageMiddleware 
    'myaffiliateprogram.middleware.BlockReferringURLs', 
) 

不幸的是,懸掛縮進違反了PEP8。

在此先感謝您向我展示如何打破這一陣線。

+0

注意,是一個元組,而不是一個數組。 – 2013-05-06 21:55:19

+0

如果有疑問,請使用[pep8樣式指南檢查器](https://pypi.python.org/pypi/pep8),它通常會產生良好的結果。它不喜歡第二個例子中的縮進,並且抱怨代碼和註釋之間至少沒有兩個空格。 – mata 2013-05-06 21:59:37

+0

mata我正在使用內置於PyCharm中的PEP8檢查器。我試圖找到一種解決方案,以便在其他開發人員遲些時候出現時不會出現錯誤,並複製/粘貼行以移動事物。我張貼的縮進解決方案完成了這一點,但沒有通過PEP8。 – Gattster 2013-05-07 22:33:52

回答

9

我只想移動註釋:

MIDDLEWARE_CLASSES = (
    'mydogslow.middleware.MyWatchdogMiddleware', 
    'gattlib.djangomiddleware.SetRemoteAddrFromXRealIP', 
    'i18n.middleware.SetLanguageMiddleware', 
    # This middleware needs to be after SetLanguageMiddleware 
    'whitelabels.middleware.SetWhitelabelMiddleware', 
    'myaffiliateprogram.middleware.BlockReferringURLs', 
) 
+0

這工作。但我不喜歡看兩行代碼。我擔心的是這兩行會被單獨複製/粘貼,並且不會配對在一起,除非我們以某種方式直觀地連接它們。也許上面的註釋和下面的SetWhitelabelMiddleware空行。 – Gattster 2013-05-07 22:32:03

+1

我同意 - 如果您擔心發生這種情況,在兩側添加空白行將有助於說明這兩行是相關的。 – girasquid 2013-05-07 22:52:30

+0

我很確定你的答案是最後的勝利者。爲了防止有人提出新的想法,我會在選擇之前等一兩天。 – Gattster 2013-05-08 23:33:20