পাইথন কন্টেইনারগুলির জন্য কিছু অ্যাবস্ট্রাক্ট বেস ক্লাস রয়েছে। বিভিন্ন অ্যাবস্ট্রাক্ট বেস ক্লাস রয়েছে। এ ক্লাসগুলো হলো Containers, Hashtable, Generator, Set, MutableSet, Awaitable ইত্যাদি।
এই মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -
import collections.abc
কিছু অ্যাবস্ট্রাক্ট বেস ক্লাস রয়েছে, যা খুব উপকারী। এই ক্লাসগুলো বিভিন্ন কন্টেইনার ক্লাস ডেভেলপ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ আমরা একটি কন্টেইনার তৈরি করতে পারি যেটিতে ফুল সেট ফাংশনালিটি থাকে। সেটি বানাতে, আমরা Set অ্যাবস্ট্রাক্ট বেস ক্লাস ব্যবহার করতে পারি। আমাদের আমাদের ক্লাসে কিছু মেথড সাপ্লাই করতে হবে। এগুলো হলো __contains__(), __iter__() এবং __len__()।
উদাহরণ কোড
import collections.abc
class ListSet(collections.abc.Set):
def __init__(self, iterable):
self.elements = lst = list()
for element in iterable:
if element not in lst:
lst.append(element)
def __iter__(self):
return iter(self.elements)
def __contains__(self, value):
return value in self.elements
def __len__(self):
return len(self.elements)
set1 = ListSet('ABCDEF')
set2 = ListSet('DEFGHI')
intersect = set1 & set2
intersect_iter = iter(intersect)
try:
while True:
print(next(intersect_iter))
except:
pass
আউটপুট
D E F