2013-01-02 58 views
6

這可能聽起來像一個新手問題,但我真的需要一些幫助。我甚至不知道如何標記它,但我認爲它只是一個Python問題。我需要使用接收5個參數,並返回5個值的函數:具有多個參數的函數調用的Python編碼風格

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

的問題是,當我使用完整的變量/函數名行實在太長了,並且代碼看起來很醜,我想在這裏使用一個更看中的解決方案,我想使用的字典或列表,以便我可以這樣做:

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) 

是否有改善這種調用的代碼質量的好還是「Python化」的方式?

在此先感謝!

+0

我不能說我完全理解你究竟發現了什麼醜陋的原始代碼,以及'input_dict'版本更漂亮的方式。 – NPE

+0

請注意,在Python中有一個'dict'文字符號,而不是許多賦值,所以您應該將字典構造爲'{x:y,w:z}'。 –

+3

另外,[PEP-8](http://www.python.org/dev/peps/pep-0008/#maximum-line-length)在處理行長方面有很好的建議。 –

回答

10

可以通過嵌套行這樣

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

您可以展開列表爲ARGS像這樣

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

你甚至可以做到這一點

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

此外,PEP-8有處理線路長度的好建議。 - Lattyware 5分鐘前

+0

感謝這就是我一直在尋找! –

相關問題