আমি নিম্নলিখিত এনাম সংজ্ঞায়িত করেছি
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
মুদ্রণ করতে চান ক্ষেত্রে আপনি ব্যবহার করতে পারেন ।x
1
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>