Python PEP 8 и вертикальное расстояние для определения функций

#python #function #pep8

#python #функция #pep8

Вопрос:

Я не могу найти, говорится ли в PEP 8 о вертикальном расстоянии зависимых функций (это описано в книге Clean Code, глава 5: Форматирование, раздел Вертикальное форматирование> Вертикальное расстояние), и я хочу знать, каковы правила Python для порядка определений функций.

После прочтения книги «Чистый код» я создам класс, который определяет методы в том же порядке, в котором они используются, например:

 class A:

    def main(self):
        self._function_1()
        self._function_2()
        self._function_3()

    def _function_1(self):
        print("Hi 1!")

    def _function_2(self):
        print("Hi 2!")

    def _function_3(self):
        print("Hi 3!")
 

Но, возможно, PEP 8 указывает что-то другое, потому что я вижу, что некоторые скрипты сначала устанавливают определение последнего используемого метода. Они изменяют приведенный выше пример следующим образом:

 class A:

    def main(self):
        self._function_1()
        self._function_2()
        self._function_3()

    def _function_3(self):
        print("Hi 3!")

    def _function_2(self):
        print("Hi 2!")

    def _function_1(self):
        print("Hi 1!")
 

Я также слышал, что в Python порядок функций варьируется в зависимости от того, находятся ли они в классе или нет.

Если вы можете дать мне информацию об этом, я буду очень благодарен.

Спасибо!

Комментарии:

1. Я сомневаюсь, что существует какой-либо стандарт для порядка методов, за исключением того, что я ожидаю __init__ быть первым.

2. Я только что проверил PEP-8, он ничего не говорит о порядке методов. Я не уверен, что вы подразумеваете под «вертикальным расстоянием».

3. Ваш вопрос предполагает, что методы используются только из одного места, в противном случае понятие «последний использованный» не имеет смысла. Но это вряд ли будет обычным явлением.

4. Спасибо бармену. Я использую «вертикальное расстояние», чтобы следовать термину, используемому в книге Clean Code. Это означает, что они должны быть вертикально близки, без другого кода между ними (насколько это возможно). В тексте книги говорится: «Зависимые функции. Если одна функция вызывает другую, они должны быть близко по вертикали, а вызывающий должен быть выше вызываемого, если это вообще возможно «.

5. Опять же, это предполагает, что функции используются только вместе. Большинство функций предназначены для более общего использования, а не только для одной зависимой функции.