Я хочу реорганизовать большую функцию 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)
но этот подход не уродливый для меня, он требует написания большого количества кода, который даже лишний.
Есть ли лучший способ сделать это?