Python PEP8: Blank lines convention

后端 未结 3 783
隐瞒了意图╮
隐瞒了意图╮ 2021-01-31 14:31

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()         


        
相关标签:
3条回答
  • 2021-01-31 15:00

    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
    
    0 讨论(0)
  • 2021-01-31 15:03
    1. Two blank lines between the import statements and other code.
    2. Two blank lines between each function.
    0 讨论(0)
  • 2021-01-31 15:06

    Perfectly explained by user8554766

    Just a simple modification

    #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

    0 讨论(0)
提交回复
热议问题