此代码从flake8获取E501 line too long (85 > 79 characters)
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=worst_zscore_min_filter)
此代码获取E251 unexpected spaces around keyword / parameter equals
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=
worst_zscore_min_filter)
满足flake8的正确方法是什么?
编辑:我最终告诉flake8忽略了noqa。我认为它没有用,但我只需要read the docs更加谨慎。
答案 0 :(得分:2)
假设您无法选择更加理智的变量名称,因为这些是机器生成的,我不会担心它,只需告诉pep8
(或pycodestyle
,或其他{ {1}}实际上用于检查PEP-8一致性)忽略该行:
flake8
(更新:而不是完全忽略该行,qobjs &= Q(...) # noqa
会让您忽略行长度,但仍会检查其他问题。)
如果您仍然使用默认的最大线宽79,请考虑使用更长的时间。 PEP-8实际上只需要标准库中代码的宽度,并明确指出团队可能会更长时间达成一致 宽度。
您获得的错误是因为# noqa: E501
之后的换行符被计为空格,就像您键入了=
一样。您可以使用显式行继续:
Q(late...gte= worse...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})
安抚在一开始就不应该是人类可读的代码上。