मैं अब ~ 3 साल के लिए अजगर 2 कोड लिखने किया गया है, और हालांकि मैं एक लंबे समय के लिए enums के बारे में जानता हूं, हम उन्हें हमारे परियोजना में उपयोग प्रारंभ कर देते (बैकपोर्टेड - pypi पैकेज enum34)।पायथन में enums के लिए एक अच्छा उपयोग केस क्या है?
मैं चाहता समझने के लिए जब उन्हें इस्तेमाल करने के लिए।
एक जगह है जहाँ हम इनका उपयोग करना प्रारंभ अजगर enums के लिए कुछ postgres डेटाबेस स्तर enums मैप करने के लिए किया गया था।
if value == Status.active.value:
...
और इसलिए इस मामले में enums का उपयोग कर सिर्फ एक का उपयोग कर की तुलना में कम उपयोगी है: इसलिए हम जब इन का उपयोग कर इस enum वर्ग
class Status(enum.Enum):
active = 'active'
inactive = 'inactive'
लेकिन तब तो हम उनका इस तरह का उपयोग कर समाप्त कर दिया अधिक सरल वर्ग, इस
class Status(object):
active = 'active'
inactive = 'inactive'
की तरह हम इस और अधिक आसानी से value == Status.active
की तरह इस्तेमाल कर सकते हैं क्योंकि,।
अब तक केवल जगह मैं इस उपयोगी पाया - हालांकि के रूप में उपयोगी नहीं के रूप में मैं चाहता हूँ - docstrings में है। स्पष्ट रूप से यह कहने के बजाय कि अनुमत मान 'सक्रिय' और 'निष्क्रिय' हैं, मैं केवल यह घोषणा कर सकता हूं कि मेरा औपचारिक पैरामीटर स्थिति एनम के सदस्य (अधिक स्थिति में अधिक सहायक होने पर) की अपेक्षा करता है
तो मैं वास्तव में नहीं गाँठ क्या उनके सटीक उपयोग के मामले में है - मुझे नहीं पता कि वे स्ट्रिंग स्थिरांक से बेहतर कैसे हैं।
संक्षेप में: enums का उपयोग कब करें?
यदि आप तारों के लिए जाते हैं, तो आप डॉकस्ट्रिंग भी कह सकते हैं "वर्ग 'स्थिति' में परिभाषित स्थिरांक में से एक होना चाहिए। – 5gon12eder
शीर्षक प्रश्न का उत्तर देने के लिए: [पायथन एनम, कब और कहां उपयोग करें?] (Http://stackoverflow.com/q/22586895/208880) –