Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PEP8后面是否应该用空行包围if语句?_Python_Pep8 - Fatal编程技术网

Python 在PEP8后面是否应该用空行包围if语句?

Python 在PEP8后面是否应该用空行包围if语句?,python,pep8,Python,Pep8,我读过。它说我们应该用空行包围顶级函数,但它没有说任何关于if语句的内容 我对Python中的顶层做了一些挖掘,它似乎是任何不缩进的东西。这是否意味着if语句应该被空行包围?if语句是否被视为函数 我在堆栈溢出上找不到关于这个的任何信息 """ my cool and interesting program! """ import this_module import that_module import another_module def procedure_to_do_this(*a

我读过。它说我们应该用空行包围顶级函数,但它没有说任何关于if语句的内容

我对Python中的顶层做了一些挖掘,它似乎是任何不缩进的东西。这是否意味着if语句应该被空行包围?if语句是否被视为函数

我在堆栈溢出上找不到关于这个的任何信息

"""
my cool and interesting program!
"""

import this_module
import that_module
import another_module


def procedure_to_do_this(*args):
    if args:
        print("the caller says %s!" % args[0])
    elif not args:
        print("the caller is too shy to say anything ;c")
    else:
        print("if you've reached this point, there's no turning back")

    return something


procedure_to_do_this()
是通常形成if/elif/else结构的方式,但是在大多数情况下,该结构是否符合代码的其余部分对您来说是主观的,当然,如果您觉得其中一个条件子句中的代码太多,并且希望区分条件,您可以对其进行更改,您可以在一个条件的末尾添加一个额外的换行符,例如:

if this:
    <a lot of code>
    <a lot of nice code>
    <a lot of long code>
<newline>
elif that:
    <a lot of other code>
如果:
如果:
等等

请始终记住,PEP8是一个简单的样式指南[line],它绝不是要规定代码的总体设计,因为当存在好的或特定的代码时,人们认为好的样式外观是主观的


并非所有代码在某种风格下都看起来很好,所以这就是为什么它是一个指导原则,而不是Python严格执行并已在intepreter中实现的东西。

通常,该标准在顶级函数声明之前和之后规定了两行空格;但是,如果语句不是函数,那么您可以按照您喜欢的任何指导原则进行操作,只要它看起来可读,并且-当然-遵循PEP8,同时遵循您的指导原则(IIRC PEP8不需要太多关于使用if相对于其他代码的定位)否,
if
语句不是函数。在
if…elif…else
部分后面加一个空行,如果您愿意,也可以在前面加一行,这样可以使代码更可读。但是要小心在一个函数中放入太多的空行,否则该函数将失去视觉完整性,不再像单个单元一样。请记住,PEP-8是一个指南,除非您为标准库编写Python代码,否则您不必严格遵守它。不过,它已经成为我们其他人的半官方指南,因此在实际情况下遵循它的建议是有意义的,特别是如果您希望其他人阅读您的代码的话顶级函数是以
def functionme
Pep8开头的函数定义,它说:“用两行空行环绕顶级函数和类定义。”if语句既不是函数也不是类定义。您要查找的内容也在该部分中:“在函数中尽量少用空行来表示逻辑部分。”因为if语句是逻辑部分,所以可以尽量少用空行来表示逻辑部分。