68

我有兴趣知道程序部分之间换行符的 Python 约定是什么?例如,考虑一下:

import os

def func1():

def func2():

什么应该是理想的换行符分隔:

  1. import模块和功能?
  2. 函数本身?

我读过PEP8,但我想确认以上两点。

4

3 回答 3

93
  1. 导入语句和其他代码之间的两个空行。
  2. 每个函数之间有两个空行。
于 2010-06-01T20:56:14.163 回答
70

如果您检查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
于 2017-11-23T06:13:26.973 回答
1

用户8554766完美解释

只是一个简单的修改

#Standard system imports
import re
import glob
import sys

#Related third party imports
import requests
import scrapy
from flask import Flask

#Local application/library specific imports
from my_local_module import MyClass1, MyClass

参考

于 2021-01-13T14:13:02.663 回答