如何使用不会引起 PEP 警告的选项卡

How to use tabs not causing PEP warnings

我正在使用 PyCharm 和制表符。 如果有一个函数有很多参数要传递,我可以这样做,效果很好:

return render(
    request,
    '/post/list.html',
    {'page': page, 'posts': posts}
)

但有时这样看起来更好更紧凑:

return render(request, '/post/list.html',
              {'page': page, 'posts': posts})

这里的 Ant 使事情变得有点复杂。使用制表符时,我得到 PEP 8: indentation contains mixed spaces and tabs (因为空格被用来制作视觉缩进。 完全不使用空格:

return render(request, '/post/list.html',
    {'page': page, 'posts': posts})

还有returns一个PEP通知:PEP 8: continuation line under-indented for visual alignment

我看到使用空格(根据 go PEP 更可取)可以解决这个问题,但我想知道是否有针对制表符用户的解决方案。

编辑: 我看到了每个人对使用制表符和空格的看法。我想我现在会切换到空间。但问题本身仍然悬而未决。如果您知道如何通过对齐且不混合制表符和空格来制作漂亮的制表符缩进,我将有兴趣了解它。谢谢!

您可以使用 Edit -> Convert Indents -> To spaces (To tabs) 通过菜单将制表符转换为空格或将空格转换为制表符。更简单的方法是按 Shift 两次,然后输入 to 和 select 您要应用的选项。

此外,请参考 this pycharm 文档(仅第一部分)。它允许您配置在按下制表符时将制表符转换为空格。

编辑:

此外,请阅读 this 关于制表符和空格的简短 PEP8 指南。 基本上:

Spaces are the preferred indentation method.

编辑 2:

如果你想禁用某些警告,当你看到波浪形下划线(警告通常为黄色)时,将光标放在它上面并按 Alt+Enter 并选择 忽略这样的错误

您还可以通过 Settings -> Editor -> Inspections 禁用某些类型的警告,并在 Python 类别中查看更多信息。

I am using PyCharm

嗯,确实有人喜欢。

and tabs

现在答案简单明了:不要。永远不能。你想要空格,其中 4 个,句号。