Có một số lớp cơ sở trừu tượng (Abstract Base Classes - ABC) cho các container (chứa đựng) của Python. Có nhiều ABC khác nhau. Các lớp này như Container, Hashable, Generator, Set, MutableSet, Awaitable, v.v.
Để dùng module này, nên nhập bằng:
import collections.abc
Một số Abstract Base Classes rất hữu ích. Các lớp này dùng để phát triển các lớp container khác nhau. Ví dụ, ta có thể tạo một container có đầy đủ chức năng của Set. Để làm vậy, ta dùng Abstract Base Class Set. Ta cần cung cấp một số phương thức trong lớp của mình: __contains__(), __iter__() và __len__().
Mã ví dụ
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
Kết quả
D E F