पायथन में एनीुमरेशन
यह लेख पायथन में एनीुमरेशन को समझाता है।
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 चैनल को भी देखें।