Python PEP 8: пустые строки в начале модуля

Существует question, который относится к этому вопросу, но не говорит обо всех интересующих вас вопросах.

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

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

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

  • Модуль с только классом:

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

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

  • Модуль с инструкцией и классами импорта:

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

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

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

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

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

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

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

Ответ 1

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

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

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