Python PEP8: 空行规范

87 投票
3 回答
71764 浏览
提问于 2025-04-15 23:25

我想了解一下在Python中,程序各部分之间应该怎么用换行符?比如说,看看这个:

import os

def func1():

def func2():

那么,理想的换行分隔应该是怎样的呢?

  1. import 模块和函数之间?
  2. 函数之间呢?

我看过了 PEP8,但我想确认一下上面这两点。

3 个回答

3

用户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

参考资料

89

如果你查看一下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
113

在代码中,导入语句和其他代码之间要留两行空白。

每个函数之间也要留两行空白。

撰写回答