Если вы проверите с разделом «Пустые строки» PEP8 - вы найдете следующее:
Окружить определения функций и классов верхнего уровня двумя пустыми строками.
Определения методов внутри класса заключены в одну пустую строку.
Дополнительные пустые строки могут использоваться (экономно) для разделения групп связанных функций. Пустые строки могут быть пропущены между группой связанных строк (например, набором фиктивных реализаций).
Используйте пустые строки в функциях, экономно для обозначения логических разделов.
Относительно импорт , PEP8 заявляет:
Импорт обычно должен быть на отдельных строках
...
Импорт должен быть сгруппирован в следующем порядке:
- импорт стандартной библиотеки
- импорт третьей стороны
- импорт локальных приложений / библиотек
Вы должны поставить пустую строку между каждой группой импорта.
Итак, для вашего примера форматирование, совместимое с 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