Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Abstract Base Classes สำหรับคอนเทนเนอร์


มีคลาสพื้นฐานที่เป็นนามธรรมสำหรับคอนเทนเนอร์ 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