PEP8 信息:
models.py:10:80: E501 line too long (83 > 79 characters)
模型.py:
field = TreeForeignKey('self', null=True, blank=True, related_name='abcdefgh')
如何正确写出这一行?
这是“正确的”,PEP8 只是标记超过 79 个字符的行。但如果你担心这个,你可以这样写:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
或这个:
field = TreeForeignKey(
'self',
null=True,
blank=True,
related_name='abcdefgh',
)
或者,真的,任何其他可以将单行分成多个较短行的样式。
我刚刚发现了一个名为 autopep8 的简洁程序!https://github.com/hhatto/autopep8
pip install autopep8
autopep8 -i models.py
您还可以(递归地)执行以下操作:
autopep8 -ri package/
Auto PEP8 仅对文件进行安全更改,仅更改布局,而不更改代码逻辑。
如果你有一些不方便分解的可笑的长字符串(想想 Sentry DSN、MIDDLEWARE 或 INSTALLED_APPS 中的偶尔模块),你可以把它放在# noqa
行尾,而 linter 会忽略线。谨慎使用,绝对不要用于您要求的情况。
这是非常主观的。如果我严格遵循 E501,我会写:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
我通常认为 100 太长,而不是 80。
我通常将其拆分以将参数排列成比原始行更深的缩进级别,例如:
field = TreeForeignKey('self', null=True,
blank=True, related_name='abcdefgh')
特别是如果TreeForeignKey
是类似的东西TreeForeignKeyWithReferencesToSomethingElse
,在这种情况下,如果您将所有参数与左括号对齐,所有参数将从窗口的最右侧开始。如果任何参数的名称很长,例如defaultvalueforcertaincircumstances
,您可能无法将整个内容放入 80 列以下:
field = TreeForeignKeyWithReferencesToSomethingElse('self',
defaultvalueforcertaincircumstances='foo')
我也更喜欢将多个函数参数放在同一行(除非它看起来不正确;我不是纯粹主义者!)这样垂直空间不会过度扩展,导致我花更多时间滚动我的编辑器比其他必要的。
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