Python PEP: пустая строка после определения функции?

Я не могу найти никакой ссылки на эту деталь. После определения функции должна быть пустая строка?

должен ли я это сделать:

def hello_function():
    return 'hello'

или shoud я делаю это:

def hello_function():

    return 'hello'

тот же вопрос применяется при использовании docstrings:

это:

def hello_function():
    """
    Important function
    """
    return 'hello'

или это

def hello_function():
    """
    Important function
    """

    return 'hello'

редактировать

это то, что PEP говорит на пустых строках, как прокомментировал FoxMaSk, но он не говорит все, что касается этой детали.

Пустые Строки

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

определения методов внутри класса разделяются одним пробелом линия.

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

использовать пустые строки в функциях, экономно, чтобы указать логические разделы.

Python принимает символ подачи формы control-L (т. е. ^L) как пробелы; многие инструменты рассматривают эти символы как разделители страниц, поэтому вы можете использовать их для разделения страниц связанных разделов вашего файла. Обратите внимание, некоторые редакторы и веб-просмотрщики код может не распознать control-L как форма подачи и покажет другой глиф на своем месте.

3 ответов


читать Соглашения Docstring.

Он говорит, что даже если функция действительно очевидна, вам нужно написать однострочную docstring. И он говорит:

нет пустой строки ни до, ни после docstring.

поэтому я бы закодировал что-то вроде

def hello_function():
    """Return 'hello' string."""
    return 'hello'

Как указал @moliware,Соглашения Docstring государство, под однострочные Docstrings:

нет пустой строки ни до, ни после docstring.

однако, он также говорит (под многострочные Docstrings):

вставить пустую строку после все docstrings (однострочный или многострочный), что документ a класс -- вообще говоря,методы класса отделены друг от друга одной пустой строкой, и docstring должен быть смещен от первого метода пустой строкой.

моя интерпретация всего этого: пустые строки никогда не должны предшествовать какой-либо docstring и должны следовать только за docstring, когда это для класса.


Это PEP 0008 что объясняет весь стандарт кодирования