पायथन में एनीुमरेशन

पायथन में एनीुमरेशन

यह लेख पायथन में एनीुमरेशन को समझाता है।

YouTube Video

पायथन में एनीुमरेशन

पायथन का enum एक विशेष क्लास है जो कॉन्स्टेंट्स को परिभाषित करने, पठनीयता बढ़ाने और कोडिंग त्रुटियों को रोकने में मदद करता है।

Enum क्या है?

Enum (enumeration का छोटा रूप) एक क्लास है जिसका उपयोग नामित कॉन्स्टेंट्स का सेट परिभाषित करने के लिए किया जाता है। इसे आमतौर पर संबंधित कॉन्स्टेंट्स को एक साथ समूहबद्ध करने के लिए उपयोग किया जाता है। उदाहरण के लिए, रंग, सप्ताह के दिन या दिशाओं को दर्शाने के लिए यह उपयुक्त है।

Enum का उपयोग क्यों करें?

Enum का उपयोग करने के कई कारण हैं।

  • पठनीयता में सुधार: नामित कॉन्स्टेंट्स का उपयोग कोड को अधिक सहज बनाता है।
  • बग की रोकथाम: यह कॉन्स्टेंट मानों के बदलाव या दुरुपयोग को रोकता है।
  • समूहबद्धता: यह संबंधित कॉन्स्टेंट्स को एक एकल क्लास में व्यवस्थित करता है, जो संरचित डेटा को दर्शाता है।

Enum का बुनियादी उपयोग

enum का उपयोग करने के लिए, enum मॉड्यूल को आयात करें और एक क्लास परिभाषित करें। क्लास को Enum से इनहेरिट करना चाहिए और उन मानों को परिभाषित करना चाहिए जिन्हें आप कॉन्स्टेंट्स के रूप में उपयोग करना चाहते हैं।

Enum का बुनियादी उदाहरण

 1from enum import Enum
 2
 3class Color(Enum):
 4    RED = 1
 5    GREEN = 2
 6    BLUE = 3
 7
 8# Usage of Enum
 9print(Color.RED)        # Color.RED
10print(Color.RED.name)   # RED
11print(Color.RED.value)  # 1

इस उदाहरण में, हम Color नामक एक Enum क्लास परिभाषित करते हैं जिसमें तीन मान होते हैं। प्रत्येक नाम को name एट्रिब्यूट के माध्यम से एक्सेस किया जा सकता है, और उससे संबंधित मान value एट्रिब्यूट के माध्यम से एक्सेस किया जा सकता है।

Enums की तुलना करना

Enum के मेंबर्स की तुलना या तो नाम से या मान से की जा सकती है। आप पहचान और समानता की जांच के लिए is ऑपरेटर या == ऑपरेटर का उपयोग कर सकते हैं।

तुलना उदाहरण

 1from enum import Enum
 2
 3class Direction(Enum):
 4    NORTH = 1
 5    SOUTH = 2
 6    EAST = 3
 7    WEST = 4
 8
 9# Equality comparison
10print(Direction.NORTH == Direction.SOUTH)  # False
11print(Direction.NORTH == Direction.NORTH)  # True
12
13# Identity comparison using is
14print(Direction.NORTH is Direction.SOUTH)  # False
15print(Direction.NORTH is Direction.NORTH)  # True

यहां, Enum की तुलना == और is का उपयोग करके प्रदर्शित की गई है। Enum को समान नाम और मान वाले वस्तुओं की सही तुलना करने के लिए डिज़ाइन किया गया है।

auto() के साथ स्वचालित मान असाइनमेंट

यदि आप Enum सदस्यों को स्वचालित रूप से मान असाइन करना चाहते हैं, तो आप enum.auto() का उपयोग कर सकते हैं। auto() पायथन को स्वचालित रूप से मान असाइन करने की अनुमति देता है, जिससे डेवलपर्स द्वारा मैन्युअल विनिर्देशन की आवश्यकता समाप्त हो जाती है।

auto() का उदाहरण

 1from enum import Enum, auto
 2
 3class Animal(Enum):
 4    DOG = auto()
 5    CAT = auto()
 6    MOUSE = auto()
 7
 8# Check the values of Enum
 9print(Animal.DOG.value)    # 1
10print(Animal.CAT.value)    # 2
11print(Animal.MOUSE.value)  # 3

इस उदाहरण में, auto() का उपयोग करने से मानों को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता समाप्त हो जाती है, जिससे कोड अधिक संक्षिप्त हो जाता है।

Enum सदस्यों को कई मान असाइन करना

Enum सदस्य कई मान भी रख सकते हैं, जैसे कि टुपल। यह प्रत्येक सदस्य को अतिरिक्त संबंधित जानकारी रखने की अनुमति देता है।

टुपल का उपयोग करते हुए उदाहरण

 1from enum import Enum
 2
 3class Status(Enum):
 4    ACTIVE = (1, 'Active user')
 5    INACTIVE = (2, 'Inactive user')
 6    SUSPENDED = (3, 'Suspended user')
 7
 8# Accessing Enum members
 9print(Status.ACTIVE.name)    # ACTIVE
10print(Status.ACTIVE.value)   # (1, 'Active user')
11print(Status.ACTIVE.value[1])  # Active user

इस उदाहरण में, Status वर्ग के सदस्यों के पास दो मान हैं, जो स्थिति और विवरण का प्रतिनिधित्व करते हैं। यह तब उपयोगी है जब आप किसी Enum सदस्य के साथ कई सूचनाएँ जोड़ना चाहते हैं।

झंडों के रूप में Enum का उपयोग करना

पायथन का enum एक Flag वर्ग शामिल करता है जिसे बिट फ्लैग्स की तरह उपयोग किया जा सकता है। Flag का उपयोग आपको कई अवस्थाओं को संयोजन में प्रबंधित करने की अनुमति देता है।

Flag का उदाहरण

 1from enum import Flag, auto
 2
 3class Permission(Flag):
 4    READ = auto()
 5    WRITE = auto()
 6    EXECUTE = auto()
 7
 8# Combining flags
 9permission = Permission.READ | Permission.WRITE
10print(permission)                 # Permission.READ|WRITE
11print(Permission.EXECUTE in permission)  # False

इस उदाहरण में, कई अनुमतियों को संयोजित करने के लिए बिटवाइज संचालनों का उपयोग किया गया है। Flag का उपयोग करने से आप कई अवस्थाओं को संक्षेप में प्रबंधित कर सकते हैं।

Enum का उपयोग करते समय ध्यान देने योग्य बिंदु

Enum की अपरिवर्तनीयता

Enum सदस्य अपरिवर्तनीय होते हैं। एक बार परिभाषित होने के बाद, उनके नाम या मान बदले नहीं जा सकते। यह स्थिरांक के रूप में संगति बनाए रखने के लिए एक महत्वपूर्ण विशेषता है।

1from enum import Enum
2
3class Days(Enum):
4    MONDAY = 1
5    TUESDAY = 2
6
7# Example of immutability
8# Days.MONDAY = 3  # AttributeError: Cannot reassign members.

प्रतिलिपि सदस्यों की निषेध

एनाम के सदस्यों के नाम और मान विशिष्ट होने चाहिए। यहां तक कि जब डुप्लीकेट मानों की अनुमति होती है, तो भी पायथन स्वचालित रूप से पहले सदस्य को प्राथमिकता देता है।

सारांश

Python का एनाम मॉड्यूल स्थिरांक (constants) के सेट को समूहित करने, पठनीयता सुधारने और कोड की सुसंगतता बनाए रखने के लिए एक अत्यधिक उपयोगी उपकरण है। आधारभूत उपयोग से लेकर auto() के माध्यम से स्वचालित मान असाइनमेंट और बिट फ्लैग्स के रूप में उपयोग तक कई तरह के उपयोग संभव हैं।

एनाम को सही से समझना और उसमें कुशलता प्राप्त करना कोड की गुणवत्ता सुधार सकता है और त्रुटियों को रोकने में मदद करता है।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video