Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में enum: एन्युमरेशन सपोर्ट

enum मॉड्यूल (पायथन 3.4+) एन्युमरेशन्स (नामित कॉन्स्टेंट्स के सेट) बनाने के लिए क्लासेस प्रदान करता है।

बुनियादी एनम

from enum import Enum

class Langs(Enum):
    Python = 1
    Java = 2
    Cpp = 3
    Ruby = 4

एक्सेस और प्रिंटिंग

>>> Langs.Python
Langs.Python
>>> print(Langs.Python)
Langs.Python
>>> repr(Langs.Python)
''

नाम और मान

>>> 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['Java']

तुलना

  • आइडेंटिटी (is, is not): समान एनम मेंबर्स के लिए काम करता है।
  • इक्वलिटी (==, !=): मान के आधार पर।
  • ऑर्डरिंग (<, >): नहीं सपोर्टेड (बेस Enum में)।
>>> x = Langs(2)
>>> y = Langs(4)
>>> x is y
False
>>> x == Langs.Java
True

डुप्लिकेट मान (एलियासेस)

डिफ़ॉल्ट रूप से एक ही मान के कई नाम अनुमत हैं (एलियास):

class Langs(Enum):
    Python = 1
    Java = 2
    Cpp = 3
    Ruby = 4
    Cplusplus = 3  # Cpp का एलियास

Langs.Cpp       # 
Langs.Cplusplus #  (Cpp ही लौटाता है)
Langs(3)        #  (पहला परिभाषित)

यूनिक मान लागू करना: @unique

from enum import Enum, unique

@unique
class Langs(Enum):
    Python = 1
    Java = 2
    Cpp = 3
    Ruby = 4
    # Cplusplus = 3  # ValueError: duplicate values found

IntEnum: इंटीजर के साथ संगत

from enum import IntEnum

class Priority(IntEnum):
    Low = 1
    Medium = 2
    High = 3

print(Priority.High > Priority.Low)  # True (इंट की तरह तुलना)
print(Priority.High + 10)            # 13 (इंट की तरह अंकगणित)

अन्य एनम टाइप्स

  • Flag, IntFlag: बिटवाइज़ ऑपरेशन्स के लिए (|, &, ^)।
  • auto(): मान ऑटो-असाइन करने के लिए।
from enum import Enum, auto

class Color(Enum):
    Red = auto()
    Green = auto()
    Blue = auto()
# Red=1, Green=2, Blue=3

उपयोग केस

  • मैजिक नंबर्स/स्ट्रिंग्स रिप्लेस करना।
  • स्टेट मशीन्स, कॉन्फ़िगरेशन ऑप्शन्स।
  • टाइप सेफ्टी और IDE सपोर्ट (ऑटोकम्प्लीट)।
  1. पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में जानेंगे।सिलेक्शन सॉर्ट एल्गोरिदम में, एक सरणी को अनसॉर्टेड भाग से न्यूनतम तत्व को पुनरावर्ती रूप से ढूंढकर और इसे शुरुआत में डालकर सॉर्ट किया जाता है। दिए गए सरणी पर सिलेक्शन सॉर्ट के निष्पादन के दौरा

  1. विंडोज पर पायथन प्रोग्रामिंग के लिए IDE विंडोज पर पायथन प्रोग्रामिंग के लिए IDE

    इस लेख में, हम विंडोज पर पायथन के लिए उपलब्ध विभिन्न IDE के बारे में जानेंगे।PyCharmइंटरैक्टिव पायथन कंसोलवेब फ्रेमवर्क के लिए समर्थनतेज़ रिफैक्टरिंग समयकम विकास समयJupyter Notebookलगभग हर पायथन मॉड्यूल के साथ संगतताकम स्पेस और हार्डवेयर आवश्यकताएंइनबिल्ट टर्मिनल और कर्नेल फीचर्सविभिन्न प्रकार के वि

  1. पायथन कोड ऑप्टिमाइज़ेशन टिप्स पायथन कोड ऑप्टिमाइज़ेशन टिप्स

    हालांकि हम सभी जानते हैं कि पायथन अन्य कंपाइल्ड भाषाओं जितना तेज़ या कुशल नहीं है। फिर भी, कई बड़ी कंपनियां दिखाती हैं कि पायथन कोड बहुत बड़े वर्कलोड को संभाल सकता है, जो दर्शाता है कि यह इतना धीमा भी नहीं है। इस सेक्शन में हम कुछ ऐसे टिप्स देखेंगे जिन्हें ध्यान में रखकर एक सही पायथन प्रोग्राम को औ