我想将一个大的Python函数重构为较小的Python函数。例如,考虑以下代码片段:
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
当然,这是一个微不足道的例子。在实践中,代码更复杂。我的观点是它包含许多局部变量,这些变量必须被传递给提取的函数,这可能是:
def mysum(x1, x2, x3, x4, x5, x6, x7, x8, x9):
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
return x
问题是,pylint会引发关于太多参数的警告。
我可以通过做以下事情来避免警告:
def mysum(d):
x1 = d['x1']
x2 = d['x2']
...
x9 = d['x9']
x = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9
return x
def mybigfunction():
...
d = {}
d['x1'] = x1
...
d['x9'] = x9
x = mysum(d)
但是这种方法对我来说很丑,所以需要编写很多甚至是冗余的代码。
有更好的方法吗?