Python PEP8:空行约定

时间:2010-06-01 20:53:28

标签: python pep8

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

import os

def func1():

def func2():

理想换行之间的分离应该是什么:

  1. import个模块和 功能?
  2. 功能本身?
  3. 我已阅读PEP8,但我想确认以上两点。

3 个答案:

答案 0 :(得分:45)

  1. 导入语句和其他代码之间有两个空行。
  2. 每个功能之间有两个空行。

答案 1 :(得分:13)

如果有人查看'Blank Lines' section of PEP8,可以找到以下内容:

  

使用两个空行环绕顶级函数和类定义。

     

类中的方法定义由一个空行包围。

     

可以使用额外的空白行(谨慎地)来分隔相关功能组。在一堆相关的单行(例如,一组虚拟实现)之间可以省略空行。

     

谨慎地在函数中使用空行来表示逻辑部分。

关于imports,PEP8声明:

  

进口通常应该分开进行

     

...

     

进口应按以下顺序分组:

     
      
  1. 标准库导入
  2.   
  3. 相关的第三方导入
  4.   
  5. 本地应用程序/库特定导入
  6.         

    您应该在每组导入之间添加一个空行。

因此,对于您的示例,符合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

答案 2 :(得分:1)

完全 explained 用户 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

Reference