Python PEP8: соглашение о пустых строках - PullRequest
28 голосов
/ 02 июня 2010

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

import os

def func1():

def func2():

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

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

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

Ответы [ 2 ]

45 голосов
/ 02 июня 2010
  1. Две пустые строки между операторами импорта и другим кодом.
  2. Две пустые строки между каждой функцией.
14 голосов
/ 23 ноября 2017

Если вы проверите с разделом «Пустые строки» 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
...