मेरे पास एक ऐसा फ़ंक्शन है जहां मुझे किसी अन्य प्रोग्राम के लिए अलग-अलग आउटपुट स्ट्रिंग जेनरेट करने की आवश्यकता होती है, जिस पर वह चाहता है।पायथन में विभिन्न प्रकारों को संभालने का कैननिक तरीका क्या है?
असल में, कॉल किए गए प्रोग्राम को कमांड लाइन तर्क की आवश्यकता होती है जो इसे बताती है कि इसे किस प्रकार कहा जाता है।
खुशी से मुझे this answer पर प्रकार के लिए एक चर की जांच करने के लिए मिला। लेकिन मैंने देखा कि लोगों ने आपत्तियों को कैसे उठाया, कि प्रकारों की जांच करने से "ऑब्जेक्ट ओरिएंटेड" डिज़ाइन नहीं होता है। तो, क्या कोई अन्य तरीका है, बिना किसी प्रकार की जांच किए बिना इसे संभालने का अधिक "अधिक ऑब्जेक्ट उन्मुख" तरीका संभव है?
कोड मेरे पास अब कुछ इस तरह चला जाता है:
def myfunc(val):
cmd_type = 'i'
if instance(val, str):
cmd_type = 's'
cmdline = 'magicprogram ' + cmd_type + ' ' + val
Popen(cmdline, ... blah blah)
...
जो सिर्फ ठीक काम करता है, लेकिन मैं सिर्फ अगर वहाँ कुछ तकनीक मैं से अनजान हूँ जानना चाहता था।
आप कमांड लाइन पर किसी प्रकार के साथ कुछ भी कैसे पारित कर रहे हैं? – geoffspear
@Wobble, मैंने एक उदाहरण जोड़ा। मुझे एहसास हुआ कि सवाल बहुत स्पष्ट नहीं था। उम्मीद है कि यह अब बेहतर है। –
myfunc कैसे कहा जाता है? मैं सुझाव दूंगा कि दो अलग-अलग फ़ंक्शन हैं जो एक अलग प्रकार के तर्क की अपेक्षा करते हैं, फिर फ़ंक्शन के निचले भाग का एक निजी फ़ंक्शन बनाएं जिसे आप प्रत्येक पूर्व कार्यों से उचित तर्क के साथ बुलाते हैं। – teukkam