python中的内部函数和pylint的分支计数



Python中的内部函数为我们提供了以下好处:

  • 在功能级别提供封装
  • 提供对封闭范围变量的访问,而不作为参数传递
  • 避免较大命名空间中的污染
  • 允许我们在函数/类(decorator(上添加包装器

一个函数可以有多个内部函数。

pylint计算函数中的分支数。如果一个函数有多个内部函数,则计数将是所有内部函数和外部函数的分支计数值的总和。

我们在pylint中是否有不聚合内部函数分支计数的配置选项

如果是,请让我知道并忽略帖子的其余部分。

限制分支数量背后的原因可能是:

  • 函数不止做一件事
  • 代码变得过于复杂,无法阅读

内部功能已经在处理这些事情(以及它自己的好处(

  • 以内部功能的形式存在关注点的分离
  • 代码仍然简单易懂

那么为什么pylint要聚合这些计数器

Pylint使用mac-cabe来处理圈复杂度。不计算内部函数被认为与mac-cabe指标在本期中所做的精神格格不入。

基于计算的精神(即降低例程的复杂性,也就是函数(,我开始怀疑添加标志是否会抵消运行mccabe的好处。具体来说,嵌套函数可能不会对函数中的逻辑分支做出贡献,但是,就其他人在阅读同一代码时所考虑的情况而言,它们确实会增加复杂性。此外,如果您将mccabe视为计算您可能需要编写的不同测试的数量来练习例程/函数中的所有代码,那么您也必须考虑嵌套函数。

最新更新