কম্পিউটার টিউটোরিয়াল

পাইথনে enum - এনামারেশন সাপোর্ট


এনামারেশন হলো আইডেন্টিফায়ার (মেম্বার) এর একটি সেট যাকে ইউনিক এবং কনস্ট্যান্ট ভ্যালু দেয়া হয়েছে। একটি এনামারেশনের মধ্যে, মেম্বারগুলোকে আইডেন্টিটি দিয়ে কমপেয়ার করা যায়। এনামারেশন অবজেক্টও ইটারেট করা যায়।

enum মডিউল নিচের ক্লাসগুলো ডিফাইন করে:

Enum : এনামারেটেড কনস্ট্যান্ট তৈরির জন্য বেস ক্লাস।

IntEnum : int-এর সাবক্লাসও হওয়া এনামারেটেড কনস্ট্যান্ট তৈরির জন্য বেস ক্লাস।

এনামারেশন ক্লাস সিনট্যাক্স ব্যবহার করে তৈরি করা হয়:

# enumexample.py
from enum import Enum
class langs(Enum):
    Python = 1
    Java = 2
    Cpp = 3
    Ruby = 4

এনামারেশন মেম্বারদের হিউম্যান রিডেবল স্ট্রিং রিপ্রেজেন্টেশন এবং repr রিপ্রেজেন্টেশন রয়েছে।

>>> from enumexample import langs
>>> print(langs.Python)
langs.Python
>>> print(repr(langs.Python))

প্রতিটি enum মেম্বারের name এবং value প্রোপার্টি রয়েছে।

>>> 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

একই নামে দুটি enum মেম্বার থাকা অবৈধ। তবে, দুটি enum মেম্বারের একই ভ্যালু থাকতে পারে। enumexample.py নিচের মতো পরিবর্তন করুন:

from enum import Enum
class langs(Enum):
    Python = 1
    Java = 2
    Cpp = 3
    Ruby = 4
    Cplusplus = 3
>>> from enumexample import langs
>>> langs.Cpp

>>> langs.Cplusplus

>>> langs(3)

ডিফল্টভাবে, এনামারেশন একই ভ্যালুর জন্য একাধিক নাম অ্যালিয়াস হিসেবে রাখতে পারে। ইউনিক ভ্যালু নিশ্চিত করতে @enum.unique ব্যবহার করুন। এনামারেশনের জন্য একটি ক্লাস ডেকোরেটর।


  1. পাইথন প্রোগ্রাম: সিম্পল ইন্টারেস্ট ক্যালকুলেশন

  2. পাইথন প্রোগ্রাম: সিলেকশন সোর্ট অ্যালগরিদম

  3. উইন্ডোজে পাইথন প্রোগ্রামিং-এ IDE সমূহ

  4. পাইথন কোড অপ্টিমাইজেশনের ১১ টি কার্যকর টিপস