मैं नया पायथन 3.5 मॉड्यूल typing का उपयोग कर रहा हूं और यह आनंददायक रहा है।टाइपिंग मॉड्यूल - स्ट्रिंग लिटल टाइप
मैं सोच रहा था कि कोई सटीक स्ट्रिंग अक्षर के आधार पर एक प्रकार निर्दिष्ट कैसे कर सकता है। उदाहरण के लिए, चार कार्यों में से एक को लौटने की गारंटी दी जाती है - "उत्तर", "पश्चिम", "पूर्व", "दक्षिण - हम इसे str
के बजाय एक विशिष्ट प्रकार चर के रूप में कैसे व्यक्त कर सकते हैं।
बस str
लौटने के बजाय
def compute_quadrant(x: int, y: int) -> str:
if x > 0 and y > 0:
return 'I'
elif x < 0 and y > 0:
return 'II'
elif x < 0 and y < 0:
return 'III'
elif x > 0 and y < 0:
return 'IV'
, मैं था: मैं प्रलेखन के माध्यम से देखा, Union
प्रकार और TypeVar
समारोह खोजने के लिए, लेकिन एक जवाब खोजने में असमर्थ था
एक उदाहरण समारोह इस समस्या को व्यक्त। एक और विशिष्ट प्रकार को वापस करना है जो कि चार मानों में से एक है - "I"
, "II"
, "III"
, या "IV"
।
टाइपस्क्रिप्ट में, कोई भी कर सकता है: type Quadrant = "I" | "II" | "III" | "IV"
- typing
मॉड्यूल के साथ इस उपयोग के मामले में कोई अच्छी पायथन चीनी है?
टाइपिंग से संबंधित नहीं है, लेकिन क्या आपने 'enum' माना है? –
क्या मैं पूछ सकता हूं, आपको ऐसी चीज़ क्यों चाहिए? क्योंकि टेक्स्ट एडिटर्स और प्रोग्रामर के लिए एनोटेशन टाइप किए जाते हैं जो कोड देखते हैं। यदि आप उन तत्वों की सीमा को सीमित कर सकते हैं जो फ़ंक्शन वापस कर सकते हैं तो आप निश्चित रूप से कह सकते हैं कि कोड को देखने से। –
शायद इस विशिष्ट कार्य ने उपयोग के मामले की रूपरेखा नहीं दी है (क्योंकि यह सरल और सीधा आगे है), लेकिन कोड लिखते समय, मैं अपने साथियों को जितना संभव हो उतना संदर्भ देना चाहता हूं। जब वस्तुओं को जोड़ना और वस्तुओं पर जटिल संचालन करना, तो मैं बहुत सख्त और सटीक प्रकार की पेशकश करने में सक्षम होना चाहता हूं। इसके अतिरिक्त, विश्लेषण उपकरण प्रकारों के आधार पर अनुकूलन के बिंदु ढूंढने में सक्षम हैं - जैसे कोड पथ जो कभी भी हिट नहीं होंगे, या गलती की गलतियों। – fructosewizard