2013-04-08 25 views
12

C'è un question che si occupa di questo ma non parla di tutti i punti che mi interessavano.Python PEP 8: righe vuote all'inizio di un modulo

PEP 8 dice a proposito righe vuote:

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

Poi, se si dispone di:

  1. Un modulo con solo un classe:

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

    si fa a separare l'inizio della classe e del commento di codifica con due righe vuote?

  2. Un modulo con la dichiarazione di importazione e classi:

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

    si fa a separare l'istruzione import e il commento di codifica con una sola riga vuota?

    E la dichiarazione di importazione e l'inizio della classe con due righe vuote?

  3. E un modulo principale:

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

    si fa a separare l'istruzione import e la funzione di primo livello con due righe vuote?

    E la fine della funzione di livello superiore e l'istruzione condizionale con due righe vuote?

risposta

8

C'è un modulo Python chiamato pep8 che può controllare il codice per vedere se è conforme alle linee guida PEP8.

Ho provato a eseguire pep8 negli esempi che hai elencato, e diverse varianti di essi, e in generale, il programma pep8 li ha accettati tutti come conformi alle linee guida pep8. Quindi, in sostanza, la risposta a tutte le tue domande è .

Esiste un certo livello di soggettività: ad esempio, è possibile avere due o una nuova riga tra la funzione principale e il segmento if __name__ == '__main__'. Tuttavia, non mi preoccuperei troppo della conformità pep8 - basta scaricare e installare il programma pep8 insieme ad altri analizzatori di codice (come pylint). Finché il tuo codice passa questi test, è abbastanza buono.