2013-04-08 44 views
12

有一個question誰對待這一點,但不談論我感興趣的所有觀點。Python PEP 8:在模塊開頭的空白行

PEP 8說,關於空行:

Separate top-level function and class definitions with two blank lines. 

然後,如果你有:

  1. 只有A類模塊:

    # -*- coding: utf-8 -*- 
    
    
    class A(object): 
        pass 
    

    你分開的開始類和編碼註釋有兩個空行?

  2. 與import語句和類模塊:

    # -*- coding: utf-8 -*- 
    
    import module 
    
    
    class B(object): 
        pass 
    
    
    class C(object): 
        pass 
    

    你分開import語句,並用一個空行編碼有何評論?

    而導入語句和類的開始有兩個空行?

  3. 和一個主模塊:

    #!/usr/bin/env python 
    # -*- coding: utf-8 -*- 
    
    import module 
    
    
    def main(): 
        a = module.A() 
        return 0 
    
    
    if __name__ == '__main__': 
        status = main() 
    

    你分開import語句,並用兩個空行的頂級功能?

    而頂層函數和條件語句的結尾有兩個空行嗎?

回答

8

有一個稱爲pep8一個Python模塊,可以檢查你的代碼,看它是否與PEP8準則。

我試着對你列出的例子以及它們的幾個變種運行pep8,並且一般來說,pep8程序接受所有這些符合pep8指南。所以基本上,所有問題的答案是

確實存在某種程度的主觀性 - 例如,您可能在主功能和if __name__ == '__main__'分段之間有兩個或一個換行符。不過,我不會太擔心pep8的符合性 - 只需下載並安裝pep8程序以及其他代碼分析器(例如pylint)。只要你的代碼通過了這些測試,就夠了。