此代码从 flake8 获取 E501 行太长(85 > 79 个字符)
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=worst_zscore_min_filter)
此代码在关键字/参数等于周围出现E251意外空格
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=
worst_zscore_min_filter)
什么是满足 flake8 的正确要求?
编辑:我最终告诉 flake8 用 noqa 忽略。我以为这不起作用,但我不得不 read the docs更加仔细。
最佳答案
假设您无法选择更合理的变量名称,因为这些是机器生成的,我不会担心它,只需告诉 pep8
(或 pycodestyle
,或无论 flake8
实际上用于检查 PEP-8 一致性)忽略该行:
qobjs &= Q(...) # noqa
(更新:# noqa: E501
不会完全忽略该行,而是让您忽略行长度,但仍检查其他问题。)
如果您仍在使用默认的最大线宽 79,请考虑使用更长的线宽。 PEP-8 实际上只要求标准库中的代码宽度,并且它明确指出团队可以就更长的代码达成一致。 宽度。
您收到的错误是因为 =
后面的换行符被计为空格,就好像您输入了 Q(late...gte= bad...filter)
.您可以使用显式续行:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=\
worst_zscore_min_filter)
或使用较短的临时名称:
x = 'latest_visit__visitstatistics__worst_zscore__gte'
y = worst_zscore_min_filter
qobjs &= Q(**{x: y})
但我的偏好是停止尝试安抚 flake8
那些本来就不应该是人类可读的代码。
关于python - 如何正确换行 django 语句以满足 flake8 的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49966671/