2013-04-08 7 views
12

Существует question, которые относятся к этому вопросу, но не говорят обо всех вопросах, которые мне интересны.Python PEP 8: Пустые строки в начале модуля

PEP 8 говорит о пустых строк:

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

Тогда, если у вас есть:

  1. модуль только с классом:

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

    ли Вы отделить начать класса и комментарий кодирования двумя пустыми строками?

  2. Модуль с оператором импорта и классов:

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

    ли вы отделить оператор импорта и кодирования комментарий с одной пустой строкой?

    И инструкция импорта и начало класса с двумя пустыми строками?

  3. И главный модуль:

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

    ли вы отделить оператор импорта и функцию верхнего уровня с двумя пустыми строками?

    И конец функции верхнего уровня и условное выражение с двумя пустыми строками?

ответ

8

Там есть модуль Python называется pep8, который может проверить ваш код, чтобы увидеть, если она соответствует руководящим принципам pep8.

Я попытался запустить pep8 на примерах, которые вы указали, и несколько их вариантов, и в целом программа pep8 приняла их все в соответствии с рекомендациями pep8. Итак, в основном, ответ на все ваши вопросы: да.

Существует определенный уровень субъективности - например, между основной функцией и сегментом может быть две или более строк. Однако я не стал бы слишком беспокоиться о соблюдении pep8 - просто загрузите и установите программу pep8 вместе с другими анализаторами кода (например, pylint). Пока ваш код проходит эти тесты, это достаточно хорошо.