1

我想在 Python 中创建一个 Set 类,但与已经在 Python 中实现的 set 类不同,我希望我的 set 只包含一种类型的元素。例如一组整数、一组字符串和一组任何其他用户定义的类。

Python中有什么方法可以将类型作为参数传递给类?或任何其他方式来做到这一点?

我正在考虑使用 dict 来实现集合,但 dicts 可以包含来自不同类型的元素。

4

1 回答 1

1

之类的?

from sets import Set

class MySet(Set):

    def __init__(self, iter, klass=None):
        if klass is not None:
            for item in iter:
                if not isinstance(item, klass):
                    raise Exception("Error")
        super(MySet, self).__init__(iter) 


if __name__ == '__main__':

    set1 = MySet([1,2,3], int)
    set2 = MySet([2,3,4], int)

    print set2.intersection(set1)

如果你想在方法中也能控制类型intersection,你应该重写生成新 Set( self.__class__(common))的调用。

再见

于 2013-08-07T09:25:59.193 回答