2013-01-02 13 views
6

यह एक नौसिखिया प्रश्न की तरह लग सकता है, लेकिन मुझे इसके साथ कुछ मदद चाहिए। मुझे यह भी नहीं पता कि इसे कैसे टैग किया जाए, लेकिन मुझे लगता है कि सिर्फ एक पायथन सवाल है।एकाधिक पैरामीटर के साथ फ़ंक्शन कॉल पर पायथन कोडिंग शैली

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

समस्या यह है कि लाइन बस बहुत लंबा है जब मैं पूर्ण चर/कार्य नामों का उपयोग, और कोड बदसूरत लग रहा है, मैं चाहता हूँ: मैं एक समारोह है कि 5 पैरामीटर प्राप्त करता है और 5 मूल्यों रिटर्न उपयोग करने की आवश्यकता यहाँ एक और अधिक फैंसी समाधान का उपयोग करने और मैं एक dict या एक सूची का उपयोग करने पर सोच रहा था तो मैं ऐसा कर सकते हैं:

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) 

वहाँ एक बेहतर या "pythonic" कॉल की इस तरह के कोड गुणवत्ता में सुधार लाने के रास्ता नहीं है ?

अग्रिम धन्यवाद!

+0

मैं नहीं कह सकता कि मैं पूरी तरह समझता हूं कि यह मूल कोड के बारे में बदसूरत लगता है, और किस तरह से 'input_dict' संस्करण सुंदर है। – NPE

+0

ध्यान दें कि कई असाइनमेंट के बजाए पाइथन में 'dict' शाब्दिक नोटेशन है, आपको शब्दकोशों को {{x: y, w: z}' के रूप में बनाना चाहिए। –

+3

इसके अलावा, [पीईपी -8] (http://www.python.org/dev/peps/pep-0008/#maximum-line-length) लाइन लंबाई से निपटने पर अच्छी सिफारिशें हैं। –

उत्तर

10

आप इस

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

तरह घोंसला लाइनों आप सूचियों आर्ग में इतना

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

तरह का विस्तार कर सकते कर सकते हैं तुम भी इस

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

भी कर सकते हैं, PEP-8 है लाइन लंबाई से निपटने पर अच्छी सिफारिशें । - लैटवेयर 5 मिनट पहले

+0

धन्यवाद यह वही है जो मैं ढूंढ रहा था! –

संबंधित मुद्दे