Длинный список параметров функции Python - PullRequest
1 голос
/ 10 августа 2011

Я ищу лучший способ дать список аргументов для моей функции:

def myFunc(*args):
    retVal=[]
    for arg in args:
        retVal.append(arg+1)
    return "test",retVal

Проблема в том, что это становится очень раздражающим, когда у вас есть длинный список параметров для передачи вашемуфункция, потому что вы должны написать два раза весь ваш список параметров и когда у вас есть 10 или более параметров с полными именами, это становится очень (очень) тяжелым.

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

Но тогда я должен сделать:

alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota=w

Есть ли более короткий способ получить и получить список параметров из функции.Или дать указатель на функцию для непосредственного изменения параметров?

Это то, что я ищу:

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

# And directly get my parameters modified to be able to print them :
print alpha,[...],iota

Ответы [ 2 ]

4 голосов
/ 10 августа 2011

Два варианта:

  1. Попробуйте уменьшить количество аргументов, разделив логику на несколько функций.

  2. Если 1.) неВозможно, вы можете использовать словарь с одним аргументом - инкапсулируя все ваши аргументы.Это может быть гибким (сигнатура функции остается неизменной, даже если вы убираете или добавляете параметры) и наиболее удобочитаемым решением (значимые ключи в словаре).

3 голосов
/ 10 августа 2011

Просто сделайте функцию, возвращающую диктовку.Затем вы можете вызвать его, используя myFunc(**yourdict), чтобы использовать элементы dict в качестве аргументов, и если вы return yourdict, вы получите тот же самый dict (с, вероятно, измененными значениями) - или вы просто измените исходный dict и вообще не вернете его..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...