Python PEP8: Blank lines convention

大城市里の小女人 提交于 2019-12-20 09:48:03

问题


I am interested in knowing what is the Python convention for newlines between the program parts? For example, consider this:

import os

def func1():

def func2():

What should be the ideal newline separation between:

  1. The import modules and the functions?
  2. The functions themselves?

I have read PEP8, but I wanted to confirm the above two points.


回答1:


  1. Two blank lines between the import statements and other code.
  2. Two blank lines between each function.



回答2:


If one will check with 'Blank Lines' section of PEP8 — one will find the following:

Surround top-level function and class definitions with two blank lines.

Method definitions inside a class are surrounded by a single blank line.

Extra blank lines may be used (sparingly) to separate groups of related functions. Blank lines may be omitted between a bunch of related one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical sections.

Regarding imports, PEP8 states:

Imports should usually be on separate lines

...

Imports should be grouped in the following order:

  1. standard library imports
  2. related third party imports
  3. local application/library specific imports

You should put a blank line between each group of imports.

So, for your example, PEP8 compliant formatting would be:

import os


def func1():


def func2():

Just to give a more comprehensive illustration:

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


来源:https://stackoverflow.com/questions/2953250/python-pep8-blank-lines-convention

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!