线太长了.Django PEP8

Ang*_*ina 22 python django pep8

PEP8信息:

models.py:10:80: E501 line too long (83 > 79 characters)
Run Code Online (Sandbox Code Playgroud)

Models.py:

field = TreeForeignKey('self', null=True, blank=True, related_name='abcdefgh')
Run Code Online (Sandbox Code Playgroud)

如何正确写这条线?

mip*_*adi 28

它是"正确的",PEP8只标记长度超过79个字符的行.但如果你担心这一点,你可以这样写:

field = TreeForeignKey('self',
                       null=True,
                       blank=True,
                       related_name='abcdefgh')
Run Code Online (Sandbox Code Playgroud)

或这个:

field = TreeForeignKey(
    'self',
    null=True,
    blank=True,
    related_name='abcdefgh',
)
Run Code Online (Sandbox Code Playgroud)

或者,实际上,任何其他风格都会将单行划分为多条较短的行.

  • @ D.Shawley:Python中的尾随逗号很好.(我通常在使用这种编码样式时将它们放在一起,以避免在向函数传递其他参数时出现语法问题.) (3认同)
  • 嗯..他们这样做.我想我发现了今天我要学到的一件事;) (2认同)

ume*_*shi 15

我刚发现这个名为autopep8的简洁程序!https://github.com/hhatto/autopep8

pip install autopep8
autopep8 -i models.py
Run Code Online (Sandbox Code Playgroud)

你也可以(递归地):

autopep8 -ri package/
Run Code Online (Sandbox Code Playgroud)

Auto PEP8仅对文件进行安全更改,仅更改布局,而不是代码逻辑.


Árn*_*son 6

如果您有一些荒谬的长字符串,将其分解成段不太方便(例如考虑Sentry DSN,MIDDLEWARE或INSTALLED_APPS中的偶尔模块),您可以将其放在# noqa行的末尾,而短绒将忽略线。谨慎使用,绝对不要用于您所要求的情况。


Pav*_*sov 5

这是非常主观的.如果我严格遵守E501,我会写信:

field = TreeForeignKey('self',
                       null=True,
                       blank=True,
                       related_name='abcdefgh')
Run Code Online (Sandbox Code Playgroud)

我通常认为100太长,而不是80.

  • @hayden:这是Python标准库的样式指南.考虑不同的线长度是完全正确的. (8认同)