2013-01-02 13 views
6

Może to brzmieć jak pytanie początkujących, ale naprawdę potrzebuję pomocy w tym zakresie. Nie wiem nawet, jak to oznaczyć, ale zakładam, że to tylko pytanie w Pythonie. Muszę korzystać z funkcji, która odbiera 5 parametrów i zwraca 5 wartości:Styl kodowania w Pythonie podczas wywoływania funkcji o wielu parametrach

a, b, c, d, e = function (input1, input2, input3, input4, input5) 

Problem polega na tym, że kiedy używać zmiennych Full/funkcje nazwy linia jest po prostu zbyt długo, a kod wygląda brzydko, chcę użyć bardziej fantazyjne rozwiązania tu i myślałem o użyciu dict lub listę, więc mogę to zrobić:

input_dict['param1'] = input1 
input_dict['param2'] = input2 
input_dict['param3'] = input3 
input_dict['param4'] = input4 
input_dict['param5'] = input5 
ret_dict = function(input_dict) 

Czy istnieje lepszy lub „pythonic” sposobem poprawy jakości kodu tego rodzaju połączeń ?

Z góry dziękuję!

+0

Nie mogę powiedzieć, że całkowicie rozumiem, co jest brzydkie w oryginalnym kodzie, i w jaki sposób wersja 'input_dict' jest ładniejsza. – NPE

+0

Zauważ, że w Pythonie istnieje literałowa notacja 'dict', a więc zamiast wielu przypisań, powinieneś skonstruować słowniki jako' {x: y, w: z} '. –

+3

Również [PEP-8] (http://www.python.org/dev/peps/pep-0008/#maximum-line-length) ma dobre zalecenia dotyczące postępowania z długością linii. –

Odpowiedz

10

Można linie gniazdo podobnych

my_function(test, this, out, like, so, 
        something, indent) 

Można poszerzyć list do args jak tak

a = [1,2,3,4,5] 
my_function(*a) 

Można nawet zrobić to

result = my_function(big, long, list, 
         of, args) 
a,b,c,d = result 

Również PEP-8 ma dobre zalecenia dotyczące postępowania z długością linii . - Lattyware 5 minut temu

+0

Dzięki temu tego właśnie szukałem! –

Powiązane problemy