Python实现的“抽象数据类型”

Python语言本身么有提供类型其他面向对象语言的抽象类、接口语法,我们可以在Python中引用abc模块来实现抽象类。

from abc import ABCMeta,abstractproperty,abstractmethod

class Set(metaclass=ABCMeta):   #元类型是类的类
    '''
    集合抽象类,metaclass=ABCMeta表示将Set类作为ABCMeta的子类
    继承于abc.ABCMeta的类可以使用abstractproperty,abstractmethod
    修饰器声明虚属性与虚方法
    '''
    @abstractproperty       #把函数当作属性访问  
    def size(self):
        '''
        返回集合中元素的个数
        '''
        pass
    @abstractmethod
    def isEmpty(self):
        '''
        判断集合是否为空
        '''
        pass    
    @abstractmethod
    def search(self,key):
        '''
        在集合中查找关键字为key的元素并返回
        '''
        pass
    @abstractmethod
    def contains(self,x):
        '''
        判断集合中是否包含元素x
        '''
        pass
    @abstractmethod
    def add(self,x):
        '''
        向集合中添加元素x
        '''
        pass
    @abstractmethod
    def remove(self,key):
        '''
        删除集合中关键字值为key的元素
        '''
        pass
    @abstractmethod
    def clear(self):
        '''
        删除集合中的所有元素
        '''
        pass
    

class HashSet(Set):
    @property       #把函数当作属性访问
    def size(self):
        pass
    def isEmpty(self):
        pass    
    def search(self,key):
        pass
    def contains(self,x):
        pass
    def add(self,x):
        pass
    def remove(self,key):
        pass
    def clear(self):
        pass
    def __init__(self):
        pass

s = HashSet()
 

你可能感兴趣的:(数据结构(Python版))