पायथन में enums को कार्यान्वित करने के तरीके पर कुछ प्रश्न हैं। अधिकांश समाधान अंत कुछ इस तरह के कम या ज्यादा बराबर किया जा रहा है:पायदान के बिना पाइथोनिक डिज़ाइन
class Animal:
DOG=1
CAT=2
दूसरों के निर्माण enums के और अधिक जटिल तरीके सुझाने है, लेकिन ultimatly इस उदाहरण की तरह देखने के लिए जब सभी ने कहा और किया जाता है होते हैं।
जावा और सी # में अपने अनुभव के आधार पर, मैं इस तरह के मुहावरे के लिए सभी प्रकार के उपयोगों के बारे में सोच सकता हूं। हालांकि, यह बहुत पाइथनिक प्रतीत नहीं होता है। वास्तव में, ऐसा लगता है कि हर बार जब कोई पूछता है कि पाइथन में क्यों नहीं हैं, तो आपको कैंडन प्रतिक्रियाओं के साथ थोड़ा सा झटका लगता है कि पाइथन जैसी भाषा में संकलन समय प्रकार की सुरक्षा को कैसे लागू करने और लागू करने का कोई कारण नहीं है, या पाइथन में कितने डिज़ाइनों को एम्स की आवश्यकता होती है, वे खराब गंध हैं।
मेरा सवाल यह नहीं है कि पाइथन में enums को कैसे कार्यान्वित किया जाए, लेकिन आम लोगों में कैसे समस्याएं हल हो जाती हैं जो पाइथोनिक तरीके से enums को उधार देती हैं। दूसरे शब्दों में, आप एक समस्या को कैसे हल करेंगे जो आपके जावा/सी # समाधान को पाइथन पर पोर्ट किए बिना संभावित मूल्यों के एक अलग सेट के साथ डेटा प्रकार रखने के लिए खुद को उधार देता है।
मुझे नहीं पता कि आपने जो उदाहरण दिया है वह गैर-पायथनिक है। और अगर मैं एक राज्य मशीन लागू कर रहा था तो मैं वस्तुओं के कार्यों का लाभ उठाता हूं और अपने राज्यों को कार्यों के रूप में परिभाषित करता हूं। –
मुझे नहीं पता कि एनम लागू करने के तरीके के बारे में विशेष रूप से कुछ भी गलत है, लेकिन मुझे यह महसूस हो रहा है कि पाइथन समुदाय के कुछ लोग उन समाधानों पर विचार करते हैं जिनके लिए पहले स्थान पर अन-पायथनिक होने की आवश्यकता होती है। आपका सुझाव है कि राज्य के रूप में प्रथम श्रेणी के कार्यों का उपयोग करके एक राज्य मशीन लागू की जानी चाहिए, हालांकि उत्तर के लिए एक अच्छी शुरुआत है! – jlund3