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), Пока ваш код проходит эти тесты, он достаточно хорош.