গণনা হল শনাক্তকারীর (সদস্যদের) একটি সেট যাকে অনন্য এবং ধ্রুবক মান দেওয়া হয়। একটি গণনার মধ্যে, সদস্যদের পরিচয় দ্বারা তুলনা করা যেতে পারে। গণনা অবজেক্টও টেরেটেড ওভার হতে পারে।
enum মডিউল নিম্নলিখিত ক্লাসগুলিকে সংজ্ঞায়িত করে
এনাম :গণনাকৃত ধ্রুবক তৈরির জন্য বেস ক্লাস।
IntEnum :গণনাকৃত ধ্রুবক তৈরির জন্য বেস ক্লাস যেটি int-এর সাবক্লাসও।
ক্লাস সিনট্যাক্স ব্যবহার করে গণনা তৈরি করা হয়
#enumexample.py from enum import Enum class langs(Enum): Python = 1 Java = 2 Cpp = 3 Ruby = 4
গণনার সদস্যদের মানুষের পঠনযোগ্য স্ট্রিং উপস্থাপনা এবং রিপ্রেজেন্টেশন রয়েছে।
>>> from enumexample import langs >>> print (langs.Python) langs.Python >>> print (repr(langs.Python)) <langs.Python: 1>
প্রতিটি enum সদস্যের নাম এবং মান বৈশিষ্ট্য আছে।
>>> 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.Cpp: 3> >>> langs['Java'] <langs.Java: 2>
আইডেন্টিটি অপারেটরগুলি enum-এর সদস্যদের তুলনা করতে ব্যবহার করা যায় না৷
৷>>> x = langs(2) >>> y = langs(4) >>> x is y False
একই নামের দুইজন সদস্য থাকা অবৈধ। যাইহোক, দুই 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.Cpp: 3> >>> langs.Cplusplus <langs.Cpp: 3> >>> langs(3) <langs.Cpp: 3>
ডিফল্টরূপে, গণনার একই মানের উপনাম হিসাবে একাধিক নাম থাকতে পারে। অনন্য মান নিশ্চিত করতে, @enum.unique A ক্লাস ডেকোরেটর ব্যবহার করুন বিশেষভাবে গণনার জন্য।