PEP8信息:
models.py:10:80: E501 line too long (83 > 79 characters)
Models.py:
field = TreeForeignKey('self', null=True, blank=True, related_name='abcdefgh')
如何正确写这条线?
答案 0 :(得分:27)
它是“正确的”,PEP8只标记长度超过79个字符的行。但如果你担心这一点,你可以这样写:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
或者这个:
field = TreeForeignKey(
'self',
null=True,
blank=True,
related_name='abcdefgh',
)
或者,实际上,任何其他样式都会将单行划分为多个较短的行。
答案 1 :(得分:13)
我刚发现这个名为autopep8的简洁程序! https://github.com/hhatto/autopep8
pip install autopep8
autopep8 -i models.py
你也可以(递归地):
autopep8 -ri package/
Auto PEP8仅对文件进行安全更改,仅更改布局,而不是代码逻辑。
答案 2 :(得分:5)
这是非常主观的。我写的,如果我严格遵守E501:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
我通常认为100太长,而不是80。
答案 3 :(得分:4)
如果你有一些荒谬的长字符串,不太容易分成碎片(考虑像Sentry DSNs,MIDDLEWARE中的临时模块或INSTALLED_APPS这样的东西),你可以把# noqa
放在最后。线和短线将忽略线。请谨慎使用,绝对不要用于你要求的情况。
答案 4 :(得分:0)
我通常将其拆分为将参数排列为比原始行更深的一级缩进,例如:
field = TreeForeignKey('self', null=True,
blank=True, related_name='abcdefgh')
特别是如果TreeForeignKey
类似于TreeForeignKeyWithReferencesToSomethingElse
,在这种情况下,如果您使用左括号将所有参数排列在窗口的最右侧,则所有参数都将从窗口的最右侧开始。如果任何参数的长名称如defaultvalueforcertaincircumstances
,您可能无法将所有参数放在80列以下:
field = TreeForeignKeyWithReferencesToSomethingElse('self',
defaultvalueforcertaincircumstances='foo')
我也更喜欢在同一行放置多个函数参数(除非它看起来不正确;我不是纯粹主义者!)因此垂直空间不会过度扩展,导致我花费更多时间在我的编辑器中滚动而不是必要的。
答案 5 :(得分:0)
autopep8
也可以解决文件和整个项目中的间距问题,这是指向文档的链接:https://github.com/hhatto/autopep8
pip install --upgrade autopep8
autopep8 --in-place --aggressive --aggressive <path_with_python_filename>
autopep8 --in-place --aggressive --aggressive C://a/test.py