我正在阅读PEP 8并注意到它没有说明最大缩进水平。当然,79 个字符的限制限制了缩进级别,但是Python 中是否有推荐的最大缩进级别?你对此有何看法?你有公司层面的政策吗?
作为其他地方的示例,Linus Torvals 在Linux 内核样式指南中指出
[...] 答案是,如果您需要 3 级以上的缩进,那么无论如何您都搞砸了,应该修复您的程序。
我正在阅读PEP 8并注意到它没有说明最大缩进水平。当然,79 个字符的限制限制了缩进级别,但是Python 中是否有推荐的最大缩进级别?你对此有何看法?你有公司层面的政策吗?
作为其他地方的示例,Linus Torvals 在Linux 内核样式指南中指出
[...] 答案是,如果您需要 3 级以上的缩进,那么无论如何您都搞砸了,应该修复您的程序。
可读性是这里最重要的事情。在一个运行超过 4 或 5 个页面/屏幕的函数中,4 或 5 级缩进并不像阅读 3 级那样严重
如果您想知道是否有太多缩进,您可能会这样做。你能重构你的代码来使用一些功能吗?列表/字典/集合理解?也许看看 itertools 看看有没有什么可以帮助的?...
我在元编程(编写编写代码的代码)时遇到了硬缩进限制,它是 100。在 CPython 2.7.8 中,这是导入时抛出的内容:
IndentationError: too many levels of indentation
因此,对于您的实际问题,在任何情况下或政策下,首选限制必须低于 100!:)
只要您处理的是过程范式,您就可以认为 Linus Torvalds 的 3 级缩进规则是有效的(而且并非总是如此,因为几乎没有什么总是有效的)。
与 C 不同,Python 提供了 OOP,它至少增加了一级缩进,因此您通常可能需要 3-4 级缩进,如果不是更多的话。
由于它的风格,个人喜好起着一定的作用,但 3-4 是你应该去的。
然而,可读性是王道,所以最好让其他人查看你的代码并告诉你它是否难以理解。
像许多 Python “规则”一样,如果你能证明它是合理的,那就改变它们。