एक्सटेंशन में उपयोग के लिए ऑब्जेक्ट मानों के साथ तर्कों और वापसी मानों को एनोटेट करने की अनुमति देने के लिए पायथन 3.X (केवल) फ़ंक्शन परिभाषा को सामान्य करता है
।
फ़ंक्शन के मूल्यों के बारे में अधिक स्पष्ट होने के लिए इसका मेटा-डेटा समझाने के लिए।
एनोटेशन को :value
तर्क नाम के बाद और डिफ़ॉल्ट से पहले और ->value
तर्क सूची के बाद के रूप में कोडित किया जाता है ।
उन्हें __annotations__
फ़ंक्शन की विशेषता के रूप में एकत्र किया जाता है , लेकिन अन्यथा पायथन द्वारा स्वयं को विशेष नहीं माना जाता है:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
स्रोत: अजगर पॉकेट संदर्भ, पांचवां संस्करण
उदाहरण:
typeannotations
मॉड्यूल प्रकार की जाँच और अजगर कोड के प्रकार के अनुमान के लिए उपकरणों का एक सेट प्रदान करता है। यह फ़ंक्शन और ऑब्जेक्ट्स को एनोटेट करने के लिए उपयोगी प्रकारों का एक सेट भी प्रदान करता है।
इन उपकरणों को मुख्य रूप से स्थिर विश्लेषणकर्ताओं जैसे कि लिंटर, कोड पूरा करने वाले पुस्तकालयों और आईडीई द्वारा उपयोग किए जाने के लिए डिज़ाइन किया गया है। इसके अतिरिक्त, रन-टाइम चेक बनाने के लिए सज्जाकार प्रदान किए जाते हैं। पायथन में रन-टाइम प्रकार की जाँच हमेशा एक अच्छा विचार नहीं है, लेकिन कुछ मामलों में यह बहुत उपयोगी हो सकता है।
https://github.com/ceronman/typeannotations
टाइपिंग कैसे बेहतर कोड लिखने में मदद करता है
टाइपिंग आपको अपने कोड को उत्पादन में भेजने से पहले और कुछ स्पष्ट बगों से बचाने के लिए स्थिर कोड विश्लेषण करने में मदद कर सकती है। मायपी जैसे उपकरण हैं, जिन्हें आप अपने टूलबॉक्स में अपने सॉफ़्टवेयर जीवन चक्र के हिस्से के रूप में जोड़ सकते हैं। Mypy आंशिक रूप से या पूरी तरह से आपके कोडबेस के खिलाफ चलकर सही प्रकारों की जांच कर सकता है। mypy आपको बग्स का पता लगाने में भी मदद करता है जैसे किसी फ़ंक्शन के लिए मान वापस किए जाने पर कोई भी प्रकार के लिए जाँच करना। टाइपिंग आपके कोड को क्लीनर बनाने में मदद करता है। टिप्पणियों का उपयोग करके अपने कोड को दस्तावेज़ित करने के बजाय, जहाँ आप डॉकस्ट्रिंग में प्रकार निर्दिष्ट करते हैं, आप बिना किसी प्रदर्शन लागत के प्रकारों का उपयोग कर सकते हैं।
स्वच्छ पायथन: पायथन में सुरुचिपूर्ण कोडिंग आईएसबीएन: आईएसबीएन -13 (पीबीके): 978-1-4842-4877-5
पीईपी 526 - परिवर्तनीय एनोटेशन के लिए सिंटैक्स
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html