আমি নিম্নলিখিত এনাম সংজ্ঞায়িত করেছি
from enum import Enum
class D(Enum):
x = 1
y = 2
print(D.x)
এখন মুদ্রিত মান হয়
D.x
পরিবর্তে আমি চেয়েছিলাম এনামের মানটি মুদ্রিত হোক
1
এই কার্যকারিতা অর্জনের জন্য কী করা যায়?
আমি নিম্নলিখিত এনাম সংজ্ঞায়িত করেছি
from enum import Enum
class D(Enum):
x = 1
y = 2
print(D.x)
এখন মুদ্রিত মান হয়
D.x
পরিবর্তে আমি চেয়েছিলাম এনামের মানটি মুদ্রিত হোক
1
এই কার্যকারিতা অর্জনের জন্য কী করা যায়?
উত্তর:
আপনি এনাম বস্তুটি মুদ্রণ করছেন । .valueআপনি যদি এটি মুদ্রণ করতে চান তবে অ্যাট্রিবিউটটি ব্যবহার করুন :
print(D.x.value)
গণনা সদস্য এবং তাদের বৈশিষ্ট্য বিভাগে প্রোগ্রামেটিক অ্যাক্সেস দেখুন :
আপনার যদি এনাম সদস্য থাকে এবং এর নাম বা মান প্রয়োজন হয়:
>>> >>> member = Color.red >>> member.name 'red' >>> member.value 1
আপনি __str__আপনার এনমের সাথে একটি পদ্ধতি যুক্ত করতে পারেন, যদি আপনি যা চান তা যদি একটি কাস্টম স্ট্রিং প্রতিনিধিত্ব করে:
class D(Enum):
def __str__(self):
return str(self.value)
x = 1
y = 2
ডেমো:
>>> from enum import Enum
>>> class D(Enum):
... def __str__(self):
... return str(self.value)
... x = 1
... y = 2
...
>>> D.x
<D.x: 1>
>>> print(D.x)
1
if D.x == 10: ...। পূর্ণসংখ্যার জন্য আমার কোন পদ্ধতি অবলম্বন করা উচিত?
D.xএটি এনাম অবজেক্ট, D.x.valueএকটি পূর্ণসংখ্যা মান। আপনার যদি অবশ্যই এনাম মানগুলি পূর্ণসংখ্যার মতো কাজ করে থাকে তবে IntEnumটাইপটি ব্যবহার করুন , যেখানে প্রতিটি উপাদান একটি সাবক্লাস intএবং তাই IntEnumD.x == 10কাজ করবে।
def __eq__(self, other): return int(self.value) == otherএবং def __int__(self): return int(self.value)এখনও তবুও আমি মনে করি যে .valueযখন আমি তুলনা ব্যবহার করি না তখন মামলাগুলি ব্যবহার করতে হয়
__eq__যখন otherঅন্য এনাম মূল্য হবে তখন প্রয়োগটি কার্যকর হয় না ; D.x == D.y, যেখানে D.x.value == D.y.valueসত্য হবে, উদাহরণস্বরূপ ব্যর্থ হবে। মনে হচ্ছে আপনি ওখানে IntEnumপরিবর্তে ব্যবহার করতে চান Enum।
আমি নিম্নলিখিত ব্যবহার করে অ্যাক্সেস কার্যকর করেছি
class D(Enum):
x = 1
y = 2
def __str__(self):
return '%s' % self.value
এখন আমি ঠিক করতে পারি
print(D.x)1ফলাফল হিসাবে পেতে ।
আপনি পরিবর্তে self.nameমুদ্রণ করতে চান ক্ষেত্রে আপনি ব্যবহার করতে পারেন ।x1
self._value_? return str(self.value)আরও সোজা।
self.valueপরিষ্কার আছেন।
valueআপনার এনাম টাইপের নাম হিসাবে ব্যবহার করতে পারেন )।
Enumকোনও স্ট্রিং ব্যবহার করে অ্যাক্সেস করার জন্য অনুসন্ধান করার সময় আমি এই পৃষ্ঠাটি পেয়েছি । আমি জানি যে এই বিবরণী প্রশ্নে যা জিজ্ঞাসা করা হচ্ছে তা নয় তবে শিরোনামটি এটি 'প্রস্তাব দেয়'।
স্ট্রিং ব্যবহার করে এনাম পেতে আপনি নিম্নলিখিতটি করতে পারেন:
from enum import Enum
class D(Enum):
x = 1
y = 2
print(D["x"]) # <D.x: 1>