Подтвердить что ты не робот

Python PEP8: соглашение о пустых линиях

Мне интересно знать, что такое соглашение Python для перевода строки между частями программы? Например, рассмотрим это:

import os

def func1():

def func2():

Каким должно быть идеальное разделение новой строки между:

  1. Модули import и функции?
  2. Сами функции?

Я прочитал PEP8, но я хотел подтвердить два приведенных выше пункта.

4b9b3361

Ответ 1

  1. Две пустые строки между операторами импорта и другим кодом.
  2. Две пустые строки между каждой функцией.

Ответ 2

Если вы проверите раздел "Пустые строки" в PEP8 - вы обнаружите следующее:

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

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

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

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

В отношении импорта PEP8 заявляет:

Импорт обычно должен быть в отдельных строках

...

Импорт должен быть сгруппирован в следующем порядке:

  1. импорт стандартной библиотеки
  2. связанный сторонний импорт
  3. локальный импорт приложений/библиотек

Вы должны поставить пустую строку между каждой группой импорта.

Итак, для вашего примера форматирование в соответствии с PEP8 будет следующим:

import os


def func1():


def func2():

Просто для более полной иллюстрации:

import re
import glob
import sys

import requests
import scrapy

from flask import Flask
from my_local_module import MyClass


def top_level_function1():
    pass


def top_level_function2():
    pass


class TestClass(object):

    def class_method1():
        pass

    def class_method2():
        pass


class TestClass2(object):

    def class2_method1():
        pass

    def class2_method2():
        pass

Ответ 3

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

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

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

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

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