python - 如何正确换行 django 语句以满足 flake8 的要求?

标签 python flake8

此代码从 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/

相关文章:

python - 使用 GitHub Actions,如何将 flake8 退出代码存储为变量而不是使工作流程失败?

python - Flake 8 与 ESLint max-statements 的等价

python - 如何确保 vscode-python 正确显示来自 `flake8-rst-docstrings` 和/或 `flake8-black` flake8 扩展的 linter 条目?

python - Plone/IRelatedItems - 如何以编程方式设置灵巧内容类型的 relatedItems?

python - 带有指针数组的cython

python - 表单提交python

python - flake8 2.4.0 不支持 pep8 1.6.2 版本?

python - 使用 pytesseract 可以做什么来改善我的 OCR 结果?

python - gdb python : How to do arithmetic operation on a gdb. 值?

python - 如何阻止 flake8 和 pylint 提示 shebang 线超过最大字符数?