गणना अद्वितीय और निरंतर मान दिए गए पहचानकर्ताओं (सदस्यों) का एक समूह है। एक गणना के भीतर, सदस्यों की तुलना पहचान से की जा सकती है। एन्यूमरेशन ऑब्जेक्ट को भी खत्म किया जा सकता है।
Enum मॉड्यूल निम्नलिखित वर्गों को परिभाषित करता है
एनम :प्रगणित स्थिरांक बनाने के लिए आधार वर्ग।
इंटेनम :प्रगणित स्थिरांक बनाने के लिए आधार वर्ग जो कि इंट के उपवर्ग भी हैं।
वर्ग सिंटैक्स का उपयोग करके गणनाएं बनाई जाती हैं
#enumexample.py from enum import Enum class langs(Enum): Python = 1 Java = 2 Cpp = 3 Ruby = 4
गणना सदस्यों के पास मानव पठनीय स्ट्रिंग प्रतिनिधित्व और प्रतिनिधि प्रतिनिधित्व है।
>>> from enumexample import langs >>> print (langs.Python) langs.Python >>> print (repr(langs.Python)) <langs.Python: 1>
प्रत्येक एनम सदस्य के पास नाम और मूल्य गुण होते हैं।
>>> x = langs.Python >>> x.name 'Python' >>> x.value 1
आप सभी सदस्यों पर पुनरावृति करने के लिए लूप का उपयोग कर सकते हैं।
>>> for lang in langs: print (lang.name, lang.value) Python 1 Java 2 Cpp 3 Ruby 4
सदस्यों को मूल्य या पहचान की सहायता से पहुँचा जा सकता है
>>> langs(3) <langs.Cpp: 3> >>> langs['Java'] <langs.Java: 2>
पहचान संचालकों का उपयोग एनम के सदस्यों की तुलना करने के लिए किया जा सकता है और नहीं किया जा सकता है।
>>> x = langs(2) >>> y = langs(4) >>> x is y False
एक ही नाम के दो एनम सदस्य होना अमान्य है। हालाँकि, दो एनम सदस्यों को समान मान रखने की अनुमति है। Enumexample.py को निम्न में बदलें:
from enum import Enum class langs(Enum): Python = 1 Java = 2 Cpp = 3 Ruby = 4 Cplusplus = 3 >>> from enumexample import langs >>> langs.Cpp <langs.Cpp: 3> >>> langs.Cplusplus <langs.Cpp: 3> >>> langs(3) <langs.Cpp: 3>
डिफ़ॉल्ट रूप से, गणनाओं में समान मान के लिए उपनाम के रूप में कई नाम हो सकते हैं। अद्वितीय मान सुनिश्चित करने के लिए, विशेष रूप से गणना के लिए @enum.unique ए क्लास डेकोरेटर का उपयोग करें।