มีคลาสพื้นฐานที่เป็นนามธรรมสำหรับคอนเทนเนอร์ Python มีคลาสฐานนามธรรมที่แตกต่างกัน คลาสเหล่านี้เหมือนกับ Containers, Hashtable, Generator, Set, MutableSet, Awaitable เป็นต้น
ในการใช้โมดูลนี้ เราควรนำเข้าโดยใช้ −
import collections.abc
มี Abstract Base Classes ซึ่งมีประโยชน์มาก คลาสเหล่านี้ใช้ในการพัฒนาคลาสคอนเทนเนอร์ที่แตกต่างกัน ตัวอย่างเช่น เราสามารถสร้างคอนเทนเนอร์ที่มีฟังก์ชันครบชุด ในการทำเช่นนั้น เราสามารถใช้คลาสพื้นฐาน Set Abstract เราจำเป็นต้องจัดหาวิธีการบางอย่างในชั้นเรียนของเรา เหล่านี้คือ __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