IntEnum और Flag
पूर्णांक और फ़्लैग एनम का उपयोग करें
IntEnum और Flag, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
साधारण एनम से आगे
enum मॉड्यूल विशेष आधार क्लास उपलब्ध कराता है। IntEnum सदस्य पूर्णांकों की तरह व्यवहार करते हैं और Flag सदस्यों को बिटवाइज़ संचालकों से जोड़ा जा सकता है। ये उन स्थितियों के लिए उपयोगी हैं जहाँ साधारण Enum बहुत सीमित होता है।
साधारण Enum int नहीं है
साधारण Enum सदस्य अपने पूर्णांक मान के साथ अदला-बदली योग्य नहीं होता। किसी संख्या से उसकी तुलना करने पर False मिलता है।
from enum import Enum
class Level(Enum):
LOW = 1
HIGH = 2
print(Level.LOW == 1)IntEnum की तुलना int की तरह
IntEnum सदस्य एक पूर्णांक होता है, इसलिए इसकी तुलना इसके संख्यात्मक मान के बराबर होती है और यह क्रमबद्धता का समर्थन करता है।
from enum import IntEnum
class Level(IntEnum):
LOW = 1
HIGH = 2
print(Level.LOW == 1)
print(Level.LOW < Level.HIGH)अंकगणित में IntEnum
सदस्य वास्तविक पूर्णांक होते हैं, इसलिए आप उन्हें गणितीय क्रियाओं और इंडेक्सिंग में उपयोग कर सकते हैं। इसका उपयोग तब करें जब किसी मान को वास्तव में संख्यात्मक कोड के साथ काम करना आवश्यक हो।
from enum import IntEnum
class Priority(IntEnum):
LOW = 1
MEDIUM = 5
HIGH = 10
print(Priority.HIGH + 1)
print(Priority.MEDIUM * 2)IntEnum सदस्यों को क्रमबद्ध करना
IntEnum क्रमबद्धता का समर्थन करता है, इसलिए सदस्यों की सूची बिना किसी अतिरिक्त कुंजी फ़ंक्शन के मान के आधार पर क्रमबद्ध हो जाती है।
from enum import IntEnum
class Priority(IntEnum):
LOW = 1
MEDIUM = 5
HIGH = 10
for p in sorted([Priority.HIGH, Priority.LOW, Priority.MEDIUM]):
print(p.name)जोड़े जा सकने वाले विकल्पों के लिए Flag
Flag एनम उन मानों के लिए बनाया गया है जिन्हें आपस में जोड़ा जाता है। दो की घात वाली संख्याएँ दें, ताकि प्रत्येक सदस्य अपना अलग बिट उपयोग करे।
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
print(Permission.READ)
print(Permission.READ.value)| से फ़्लैग जोड़ना
फ़्लैग को एकल संयुक्त मान में जोड़ने के लिए बिटवाइज़ OR संचालक | का उपयोग करें।
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
print(access)in से सदस्यता जाँचना
किसी फ़्लैग के सेट होने की जाँच in संचालक से करें; यह आपके लिए बिटवाइज़ जाँच करता है।
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
print(Permission.READ in access)
print(Permission.EXECUTE in access)प्रतिच्छेदन और हटाना
सामान्य बिट खोजने के लिए फ़्लैग को & (AND) से जोड़ें और पूरक ~ के साथ & का उपयोग करके कोई फ़्लैग हटाएँ।
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.WRITE
still = access & ~Permission.WRITE
print(still)पूर्णांक फ़्लैग के लिए IntFlag
IntFlag दोनों विचारों को जोड़ता है: ऐसे फ़्लैग जिन्हें आपस में जोड़ा जा सकता है और जो साधारण पूर्णांकों की तरह भी व्यवहार करते हैं। यह C API या संख्याओं के रूप में संग्रहीत बिट मास्क के साथ काम करते समय उपयोगी है।
from enum import IntFlag, auto
class Mode(IntFlag):
R = 4
W = 2
X = 1
m = Mode.R | Mode.W
print(int(m))संयुक्त फ़्लैग पर इटरेट करना
किसी संयुक्त Flag मान पर लूप चलाने से उसमें मौजूद प्रत्येक अलग फ़्लैग मिलता है, जो सक्रिय विकल्पों की सूची बनाने के लिए उपयोगी है।
from enum import Flag, auto
class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()
access = Permission.READ | Permission.EXECUTE
for p in access:
print(p.name)त्वरित जाँच
साधारण Enum के बजाय आप Flag एनम क्यों चुनेंगे?
पुनरावलोकन
आपने पूर्णांक और फ़्लैग एनम सीखे।
IntEnumसदस्य पूर्णांकों की तरह व्यवहार करते हैं और क्रमबद्धता तथा अंकगणित का समर्थन करते हैं।Flagसदस्यों को|,&और~से जोड़ा जा सकता है औरinसे जाँचा जा सकता है।IntFlagदोनों प्रकार के व्यवहारों को मिलाता है।- फ़्लैग मानों के लिए दो की घात वाली संख्याओं का उपयोग करें।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “IntEnum और Flag” पाठ निःशुल्क है?
हाँ—“IntEnum और Flag” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“IntEnum और Flag” में मैं क्या सीखूँगा?
पूर्णांक और फ़्लैग एनम का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“IntEnum और Flag” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Enum क्लास
- IntEnum और Flag
- NamedTuple की मूल बातें
- typing.NamedTuple