1

Pep 8 有以下规则

空行

用两个空行分隔顶级函数和类定义。

类中的方法定义由一个空行分隔。

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

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

Python 接受 control-L(即 ^L)换页符作为空格;许多工具将这些字符视为页面分隔符,因此您可以使用它们来分隔文件相关部分的页面。请注意,一些编辑器和基于 Web 的代码查看器可能无法将 control-L 识别为换页符,并且会在其位置显示另一个字形。

但是,类定义中不能有一个完全空白的行

我头脑中的例子:

class bunny:
    def spam(self):
        pass

    def eggs(self):
        pass

#a second example
class bunny2:
    def __init__(self):
        self._eggs = None

    def eggs(self):
        doc = "Spam and Eggs"

        def fget(self, value):
            return self._eggs

        def fset(self, value):
            self._eggs = value

        def fdel(self):
            del self._eggs

        return locals()
    eggs = property(**eggs())

spam 和 egg 之间的行必须是空行,但是,这将导致意外缩进的解析错误。是否有另一个角色应该进入那个空间?我的假设只是将空格/制表符留在“空白”行,因为它更具可读性。

在第二个示例中,嵌套的 defs 需要维护其先前行的缩进,以使解析正常工作。处理此问题的正确 PEP 8 方法是什么?空行,带空格的空行,没有行?

4

1 回答 1

2

如果您在 REPL 中工作,则不能有完全空白的行。但是无论如何,在 REPL 中输入的代码没有理由严格遵守 PEP 8。但在文件中,遵循 PEP 8 是个好主意。

于 2012-11-07T04:00:51.747 回答