Python Enum: प्रयोग र उपयोग—आधारदेखि उन्नतसम्म

1. Python Enum भनेको के हो

Python को Enum सूचीबद्ध प्रकारलाई कार्यान्वयन गर्नका लागि भएको कक्षा हो, र सम्बन्धित स्थिरांकहरूलाई एउटै समूहमा समेट्न प्रयोग गरिन्छ। सामान्य डाटा प्रकारभन्दा फरक रूपमा, Enum प्रयोग गर्दा कोडको सुरक्षा र एकरूपता कायम राख्न सकिन्छ। निश्चित मानहरूको समूह परिभाषित गर्दा यो उपयोगी हुन्छ, र उदाहरणका लागि रङ, दिशा, अवस्था जस्ता सीमित विकल्पहरू अभिव्यक्त गर्न मद्दत गर्छ。

1.1 Enum का फाइदाहरू

  • सुरक्षिततामा सुधार: Enum ले परिभाषित दायराबाहिरका मानहरूको प्रयोगलाई रोक्ने भएकाले, अपेक्षित नभएका त्रुटिहरूलाई रोक्छ।
  • पठनीयतामा सुधार: स्थिरांकहरूलाई अर्थपूर्ण नाम दिँदा कोडको उद्देश्य स्पष्ट हुन्छ र पठनीयता बढ्छ।

2. Enum को आधारभूत प्रयोग

Enum प्रयोग गर्न, पहिलेenum मोड्युल इम्पोर्ट गरेर, Enum कक्षा इनहेरिट गरी नयाँ Enum कक्षा परिभाषित गर्नुहोस्।
from enum import Enum

class Color(Enum):
    RED = 1
    BLUE = 2
    GREEN = 3
यस उदाहरणमा, Color कक्षामा 3 वटा सदस्य (RED, BLUE, GREEN) समावेश छन्।

2.1 Enum का सदस्यहरूमा पहुँच

Enum का सदस्यहरूमा पहुँच गर्न, कक्षा नाम र सदस्य नाम प्रयोग गर्नुहोस्। साथै, Enum मा सदस्यलाई नाम वा मानबाट प्राप्त गर्न सकिन्छ।
favorite_color = Color.RED
print(favorite_color)  # Output: Color.RED

# नामबाट प्राप्त
color_by_name = Color['RED']

# मानबाट प्राप्त
color_by_value = Color(1)
यसरी, Enum का सदस्यहरूमा पहुँच सजिलै गर्न सकिन्छ।

3. Python Enum प्रयोग गर्नुपर्ने कारणहरू

Python को Enum प्रयोग गर्नुका धेरै फाइदाहरू छन्।

3.1 पठनीयता सुधार गर्न

Enum प्रयोग गर्दा, संख्या वा स्ट्रिङ सिधै प्रयोग गर्ने भन्दा, कोडको आशय अझ स्पष्ट हुन्छ। उदाहरणका लागि, दिशा प्रदर्शन गर्दा, साधारण संख्याको सट्टा Enum प्रयोग गरेर सजिलै बुझिने नामहरू परिभाषित गर्दा पठनीयता बढ्छ।
# Enum नप्रयोग गरिएको अवस्थामा
direction = 1  # के अर्थ हो बुझ्न गाह्रो

# Enum प्रयोग गर्ने अवस्थामा
class Direction(Enum):
    NORTH = 1
    SOUTH = 2
    EAST = 3
    WEST = 4

direction = Direction.NORTH  # आशय स्पष्ट

3.2 कोडलाई संक्षिप्त बनाउन

Enum प्रयोग गर्दा, सम्बन्धित स्थिरांकहरूलाई एउटै ठाउँमै व्यवस्थापन गर्न सकिन्छ र कोडको दोहोर्याइँ घटाउन सकिन्छ। साथै, पटक-पटक परिभाषा गर्ने झन्झट घट्छ र कार्यक्षमता पनि बढ्छ।
class Permission(Enum):
    READ = 'read'
    WRITE = 'write'
    EXECUTE = 'execute'

3.3 इनपुट गल्तीहरू रोक्न

Enum मा परिभाषित गरिएका मानहरू मात्र प्रयोग गर्न मिल्ने भएकाले, अपेक्षित नभएका मानको इनपुट रोक्न सकिन्छ। उदाहरणका लागि, हप्ताको दिनलाई दर्शाउने Enum परिभाषित गर्दा, त्यसबाहेकका मानहरू प्रयोग गर्न सकिँदैन।
class Weekday(Enum):
    MONDAY = 1
    TUESDAY = 2
    WEDNESDAY = 3

# अमान्य मान प्रयोग गर्न खोज्दा त्रुटि उत्पन्न हुन्छ

4. Enum को उन्नत प्रयोग तरिकाहरू

Enum मा आधारभूत प्रयोग बाहेक उन्नत अनुप्रयोगहरू पनि सम्भव छन्。

4.1 IntEnum

IntEnum Enum को व्युत्पन्न प्रकार हो, जसले Enum सदस्यलाई पूर्णांक मानका रूपमा हातलिँ गर्न अनुमति दिन्छ। यसले Enum सदस्य र पूर्णांक मानलाई सिधै तुलना गर्न सम्भव बनाउँछ。
from enum import IntEnum

class Status(IntEnum):
    SUCCESS = 1
    FAILURE = 2

print(Status.SUCCESS == 1)  # Output: True

4.2 Flag र IntFlag

FlagIntFlag बिट अपरेशन प्रयोग गरेर धेरै फ्ल्यागहरू संयोजन गर्न प्रयोग हुन्छन्। उदाहरणका लागि, फाइल अनुमति प्रस्तुत गर्दा, धेरै फ्ल्यागहरूलाई एउटै मानका रूपमा समेट्न सकिन्छ。
from enum import IntFlag

class Permission(IntFlag):
    READ = 1
    WRITE = 2
    EXECUTE = 4

permissions = Permission.READ | Permission.WRITE
print(permissions)  # Output: Permission.READ|WRITE
यसरी, FlagIntFlag प्रयोग गर्दा, धेरै फ्ल्यागहरू संयोजन गरेर बनेको मानलाई दक्षतापूर्वक व्यवस्थापन गर्न सकिन्छ。
侍エンジニア塾

5. Enum का व्यावहारिक उदाहरणहरू

Enum धेरै परिदृश्यहरूमा प्रयोग गर्न सकिन्छ। तल केही व्यावहारिक उदाहरणहरू प्रस्तुत गरिन्छ।

5.1 रङ मोडेलका लागि Enum

RGB रङलाई प्रस्तुत गर्नुपर्दा, Enum प्रयोग गरेर रङ र तिनका मानहरू परिभाषित गर्न सकिन्छ।
class RGBColor(Enum):
    RED = (255, 0, 0)
    GREEN = (0, 255, 0)
    BLUE = (0, 0, 255)

5.2 अवस्था व्यवस्थापन

Enum प्रयोग गरेर प्रणाली वा कार्यहरूको अवस्था व्यवस्थापन गर्न सकिन्छ। उदाहरणका लागि, कार्यको प्रगति अवस्थालाई Enum मा परिभाषित गर्दा, कोड अझ बुझ्न सजिलो हुन्छ।
class TaskStatus(Enum):
    PENDING = 'Pending'
    IN_PROGRESS = 'In Progress'
    COMPLETED = 'Completed'

5.3 सेटिङ विकल्पहरूको व्यवस्थापन

सेटिङ विकल्पहरूलाई Enum मार्फत व्यवस्थापन गर्दा, विकल्प थप्न वा परिवर्तन गर्न सजिलो हुन्छ।
class ConfigOption(Enum):
    DEBUG = 'debug'
    PRODUCTION = 'production'
    TESTING = 'testing'

6. सारांश

Python को Enum कोडको पठनीयता बढाउन मात्र होइन, सम्पूर्ण कार्यक्रममा एकरूपता कायम राख्न पनि प्रभावकारी उपाय हो। साथै, सम्बन्धित स्थिरांकहरूलाई एकैसाथ व्यवस्थापन गर्दा, कोडको दोहोरोपन घटाउन र इनपुट त्रुटि रोक्न सकिन्छ। आधारभूत प्रयोगदेखि उन्नत प्रयोगसम्म, Enum लाई प्रयोग गरेर, दृढ र रखरखाव सजिलो हुने कोड तयार गर्न सम्भव छ。
年収訴求