Python中的内部函数为我们提供了以下好处:
- 在功能级别提供封装
- 提供对封闭范围变量的访问,而不作为参数传递
- 避免较大命名空间中的污染
- 允许我们在函数/类(decorator(上添加包装器
一个函数可以有多个内部函数。
pylint计算函数中的分支数。如果一个函数有多个内部函数,则计数将是所有内部函数和外部函数的分支计数值的总和。
我们在pylint中是否有不聚合内部函数分支计数的配置选项
如果是,请让我知道并忽略帖子的其余部分。
限制分支数量背后的原因可能是:
- 函数不止做一件事
- 代码变得过于复杂,无法阅读
内部功能已经在处理这些事情(以及它自己的好处(
- 以内部功能的形式存在关注点的分离
- 代码仍然简单易懂
那么为什么pylint要聚合这些计数器
Pylint使用mac-cabe来处理圈复杂度。不计算内部函数被认为与mac-cabe指标在本期中所做的精神格格不入。
基于计算的精神(即降低例程的复杂性,也就是函数(,我开始怀疑添加标志是否会抵消运行mccabe的好处。具体来说,嵌套函数可能不会对函数中的逻辑分支做出贡献,但是,就其他人在阅读同一代码时所考虑的情况而言,它们确实会增加复杂性。此外,如果您将mccabe视为计算您可能需要编写的不同测试的数量来练习例程/函数中的所有代码,那么您也必须考虑嵌套函数。