जबकि मैं पायथन की बतख-टाइपिंग अवधारणा से अवगत हूं, मैं कभी-कभी फ़ंक्शन के प्रकार, या फ़ंक्शन के रिटर्न मान के प्रकार के साथ संघर्ष करता हूं।
अब, यदि मैंने फ़ंक्शन को स्वयं लिखा है, तो मुझे इसके प्रकार पता हैं। लेकिन क्या होगा अगर कोई मेरे कार्यों का उपयोग और कॉल करना चाहता है, तो उसे प्रकार जानने की उम्मीद कैसे है? मैं आमतौर पर फ़ंक्शन के डॉकस्ट्रिंग में टाइप जानकारी रखता हूं (जैसे: "...the id argument should be an integer..."और "... the function will return a (string, [integer]) tuple.")
लेकिन डॉकस्ट्रिंग में जानकारी को देख रहा है (और इसे एक कोडर के रूप में वहां डाल रहा है) वास्तव में जिस तरह से इसे करना चाहिए था?
संपादित करें: जबकि अधिकांश उत्तर "हां, दस्तावेज!" मुझे लगता है कि यह हमेशा 'जटिल' प्रकारों के लिए बहुत आसान नहीं है।
उदाहरण के लिए: डॉकस्ट्रिंग में संक्षिप्त रूप से कैसे वर्णन किया जाए कि कोई फ़ंक्शन tuples की सूची देता है, प्रत्येक tuple of the form (नोड_id, node_name, uptime_minutes) के साथ और तत्व क्रमशः एक स्ट्रिंग, स्ट्रिंग और पूर्णांक हैं?
Docstring PEP प्रलेखन उस पर कोई दिशानिर्देश नहीं देता है।
मुझे लगता है कि प्रतिवाद यह होगा कि उस स्थिति में कक्षाओं का उपयोग किया जाना चाहिए, लेकिन मुझे अजगर बहुत लचीला लगता है क्योंकि यह सूचियों और ट्यूपल्स का उपयोग करके इन चीजों को पास करने की अनुमति देता है, अर्थात बिना कक्षाओं के।