"लक्ष्य कहने पर अंतर स्पष्ट होना" चाहते हैं, यह लक्ष्य भाषा के डिजाइन दर्शन के साथ इतना अच्छा नहीं है। इसके बारे में अधिक जानकारी के लिए Google "बतख टाइपिंग"। स्वीकार किए गए इनपुट को फ़ंक्शन के डॉकस्ट्रिंग द्वारा स्पष्ट किया जाना चाहिए, और आपको बस इतना करना है।
पायथन में, जब आप अपना इनपुट चाहते हैं तो यह एक स्ट्रिंग या एक धक्का हो, तो आप केवल कोड लिखते हैं जो मानता है कि इनपुट एक ऐसी वस्तु होगी जो एक स्ट्रिंग-जैसी तरीके या एक धैर्य जैसा व्यवहार में व्यवहार करे । यदि इनपुट नहीं करता है, तो आप चाहें तो उस शानदार तरीके से इसे संभालने का प्रयास कर सकते हैं, लेकिन आमतौर पर आप आसानी से एक अनचाहे अपवाद के साथ पॉप करने के लिए अपना कोड छोड़ सकते हैं। यह गेंद को कॉलर की अदालत में वापस रखता है ताकि यह तय किया जा सके कि स्थिति को कैसे संभाला जाए, या महसूस हो कि वे खराब डेटा में भेज रहे थे।
टाइप चेक सामान्य रूप से टालना चाहिए, यदि वास्तव में आवश्यक है तो इसे आपके द्वारा किए गए प्रकार की समानता जांच के बजाय isinstance
के साथ किया जाना चाहिए। विरासत स्थितियों के लिए यह अधिक लचीला होने का लाभ है।
def aFuncion(input_):
if isinstance(input_, str):
print 'you gave a string-like input'
elif isinstance(input_, dict):
print 'you gave a dict-like input'
aFunction('test')
पायथन 3 में अब आपके पास टाइपिंग फ़ंक्शन एनोटेशन का उपयोग करने का एक और विकल्प है। उस सुविधा के बारे में अधिक जानकारी के लिए PEP 484 पढ़ें।
+1 भाषा दर्शन के बारे में अच्छा बिंदु। प्लस मेरा मानना है कि आप 'input' तर्क का नाम बदलना चाहिए (अब यह एक अंतर्निहित समारोह अधिलेखित करता है)। – Tadeck