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

পাইথনে Enum (এনাম)


Enum পাইথনে একটি ক্লাস যা এনামারেশন তৈরি করার জন্য ব্যবহৃত হয়, যা হলো প্রতীকী নামের (সদস্যদের) একটি সেট যেগুলো یونিক, কনস্ট্যান্ট মানlerle বদ্ধ। একটি এনামারেশনের সদস্যদের এই প্রতীকী নামों দ্বারা তুলনা করা যায়, এবং এনামারেশন নিজেও ইটেরেট করা যায়। একটি enum-এর নিচের বৈশিষ্ট্যগুলো রয়েছে।

  • এনামগুলো একটি অবজেক্টের ইভ্যালুয়েটেবল স্ট্রিং রিপ্রেজেন্টেশন যাকে repr() বলা হয়।

  • 'name' কিওয়ার্ড ব্যবহার করে এনামের নাম প্রদর্শন করা যায়।

  • type() ব্যবহার করে enum টাইপ চেক করা যায়।

উদাহরণ

import enum

# enum ক্লাস ব্যবহার করে এনামারেশন তৈরি করুন
class Days(enum.Enum):
    Sun = 1
    Mon = 2
    Tue = 3

# enum সদস্য স্ট্রিং হিসেবে প্রিন্ট করুন
print("The enum member as a string is : ", end="")
print(Days.Mon)

# enum সদস্য repr হিসেবে প্রিন্ট করুন
print("The enum member as a repr is : ", end="")
print(repr(Days.Sun))

# enum সদস্যের টাইপ চেক করুন
print("The type of enum member is : ", end="")
print(type(Days.Mon))

# enum সদস্যের নাম প্রিন্ট করুন
print("The name of enum member is : ", end="")
print(Days.Tue.name)

আউটপুট

উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:

The enum member as a string is : Days.Mon
The enum member as a repr is : Days.Sun
The type of enum member is : 
The name of enum member is : Tue

এনাম ইটেরেবল হিসেবে প্রিন্ট করা

এনামকে ইটেরেবল লিস্ট হিসেবে প্রিন্ট করা যায়। নিচের কোডে আমরা for লুপ ব্যবহার করে সব enum সদস্য প্রিন্ট করি।

উদাহরণ

import enum

# enum ক্লাস ব্যবহার করে এনামারেশন তৈরি করুন
class Days(enum.Enum):
    Sun = 1
    Mon = 2
    Tue = 3

# লুপ ব্যবহার করে সব enum সদস্য প্রিন্ট করুন
print("The enum members are : ")
for weekday in (Days):
    print(weekday)

আউটপুট

উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:

The enum members are :
Days.Sun
Days.Mon
Days.Tue

এনাম হ্যাশিং

এনামারেশনের সদস্যদের হ্যাশ করা যায়, তাই সেগুলো ডিকশনারি এবং সেটে ব্যবহার করা যায়। নিচের উদাহরণে আমরা হ্যাশিং בפעולה দেখি এবং চেক করি হ্যাশিং সফল হয়েছে কিনা।

উদাহরণ

import enum

# enum ক্লাস ব্যবহার করে এনামারেশন তৈরি করুন
class Days(enum.Enum):
    Sun = 1
    Mon = 2

# ডিকশনারি তৈরি করতে হ্যাশিং
Daytype = {}
Daytype[Days.Sun] = 'Sun God'
Daytype[Days.Mon] = 'Moon God'

# হ্যাশিং সফল কিনা চেক করুন
print(Daytype == {Days.Sun: 'Sun God', Days.Mon: 'Moon God'})

আউটপুট

উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:

True

এনাম অ্যাক্সেস করা

সদস্য আইটেমের নাম বা মান ব্যবহার করে enum সদস্যদের অ্যাক্সেস করা যায়। নিচের উদাহরণে আমরা প্রথমে নাম দ্বারা মান অ্যাক্সেস করি যেখানে enum-এর নামটি ইনডেক্স হিসেবে ব্যবহার করা হয়েছে।

উদাহরণ

import enum

# enum ক্লাস ব্যবহার করে এনামারেশন তৈরি করুন
class Days(enum.Enum):
    Sun = 1
    Mon = 2

print('enum member accessed by name: ')
print(Days['Mon'])
print('enum member accessed by Value: ')
print(Days(1))

আউটপুট

উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:

enum member accessed by name: Days.Mon
enum member accessed by Value: Days.Sun

এনাম তুলনা করা

এনাম তুলনা করা একটি সরল প্রক্রিয়া, আমরা তুলনা অপারেটর ব্যবহার করি।

উদাহরণ

import enum

# enum ক্লাস ব্যবহার করে এনামারেশন তৈরি করুন
class Days(enum.Enum):
    Sun = 1
    Mon = 2
    Tue = 1

if Days.Sun == Days.Tue:
    print('Match')
if Days.Mon != Days.Tue:
    print('No Match')

আউটপুট

উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:

Match
No Match

  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার

  3. পাইথনে Enumারেশন সাপোর্ট

  4. পাইথন ক্লাসে enum কীভাবে ব্যবহার করবেন?