मेरे पास एक पायथन फ़ंक्शन है जो कई तर्क लेता है। इनमें से कुछ तर्क कुछ परिदृश्यों में छोड़े जा सकते हैं।वैकल्पिक तर्कों के साथ मैं पाइथन फ़ंक्शन कैसे बना सकता हूं?
def some_function (self, a, b, c, d = None, e = None, f = None, g = None, h = None):
#code
तर्क d
h
के माध्यम से तार प्रत्येक अलग-अलग अर्थ है जो कर रहे हैं। यह महत्वपूर्ण है कि मैं चुन सकता हूं कि किसी भी संयोजन में कौन से वैकल्पिक पैरामीटर पास किए जाएंगे। उदाहरण के लिए, (a, b, C, d, e)
, या (a, b, C, g, h)
, या (a, b, C, d, e, f
, या उनमें से सभी (ये मेरे विकल्प हैं)।
यह बहुत अच्छा होगा यदि मैं समारोह ओवरलोड सकता है हो सकता है - लेकिन मैंने पढ़ा है कि अजगर से अधिक भार का समर्थन नहीं करता। मैंने सूची में कुछ आवश्यक int तर्क डालने का प्रयास किया - और एक तर्क विसंगति त्रुटि मिली।
अभी मैं पहले कुछ लापता तर्कों के स्थान पर प्लेसहोल्डर के रूप में खाली तार भेज रहा हूं। मैं केवल वास्तविक मानों का उपयोग करके एक फ़ंक्शन को कॉल करने में सक्षम होना चाहता हूं।
क्या ऐसा करने का कोई तरीका है? क्या मैं तर्क सूची के बजाय एक सूची पास कर सकता हूं?
_fdll.some_function.argtypes = [c_void_p, c_char_p, c_int, c_char_p, c_char_p, c_char_p, c_char_p, c_char_p]
संबंधित महत्वपूर्ण महत्वपूर्ण हैं का एक शब्दकोश के लिए होता है: [** क्या करता है (डबल स्टार/तारांकन) और * (स्टार/तारांकन) मापदंडों के लिए करते हैं ?] (https://stackoverflow.com/q/36901/3357935) –