空白行Python PEP8在类定义中的最佳实践

Cau*_*ons 16 python pep8

我总是在课程定义后留下一个空行,代码似乎符合PEP8,因为没有提出警告.我之所以这样做是因为我发现它比一起编写更具可读性.

class Area(BaseModel):

    name = models.CharField(_("Name"), max_length=30)
    slug = models.SlugField(_("Slug"), max_length=30, unique=True)

    class Meta(BaseModel.Meta):

        verbose_name = _("Area")
        verbose_name_plural = _("Areas")
        ordering = [
            "name",
        ]
Run Code Online (Sandbox Code Playgroud)

但是,当我读PEP8代码兼容时.这个额外的空间永远不存在,这段代码看起来像这样:

class Area(BaseModel):
    name = models.CharField(_("Name"), max_length=30)
    slug = models.SlugField(_("Slug"), max_length=30, unique=True)

    class Meta(BaseModel.Meta):
        verbose_name = _("Area")
        verbose_name_plural = _("Areas")
        ordering = [
            "name",
        ]
Run Code Online (Sandbox Code Playgroud)

我的问题是:这是一个"糟糕的做法",我正在做什么.我应该在Python中避免这些额外的空白行吗?

ice*_*ime 13

这真的是品味问题.我个人将空白行包含在具有docstring的类中.引用PEP-0257:

在记录类的所有文档字符串(单行或多行)之前和之后插入一个空行 - 一般来说,类的方法通过一个空行彼此分开,并且docstring需要从第一种方法是一个空白行; 为了对称,在类头和docstring之间加一个空行.

为了显示:

class WithoutDocString(object):

    def __init__(self):
        pass


class WithADocString(object):

    """Summary line.

    Bla bla bla bla.
    """

    def __init__(self):
        pass
Run Code Online (Sandbox Code Playgroud)

  • 请注意,PEP-0257似乎已经改变.";对于对称性,在类标题和文档字符串之间放置一个空行." 已被删除. (13认同)
  • @ARF https://hg.python.org/peps/rev/9b715d8246db (5认同)
  • 真的好奇的是,在您发布的链接中,您可以找到您的诅咒解释,但在他们自己的示例中,他们不遵循它!如果你意识到,他们正在一起编写:方法定义,文档字符串和代码.所以我认为这真的是一个品味问题,它仍然符合PEP8标准. (3认同)