Pep8 Python3.3矛盾

时间:2012-11-07 03:45:28

标签: coding-style python-3.x whitespace pep8

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

垃圾邮件和鸡蛋之间的界限必须是一个空行,但这会导致意外缩进的解析错误。那个空间应该有另一个角色吗?我的假设是将空格/制表符留在“空白”行,因为它更具可读性。

在第二个示例中,嵌套的defs需要保持其先前的行缩进,以使解析正常工作。 什么是正确的PEP 8方式来处理这个?空白行,空白行,白色空格,没有行?

1 个答案:

答案 0 :(得分:1)

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