我想在Python中创建一个Set类,但与已经在Python中实现的set类不同,我希望我的set只包含一种类型的元素。例如,一组整数,一组字符串和一组任何其他用户定义的类。
Python中有没有办法将类型作为参数传递给类?或其他任何方式吗?
我正在考虑使用dict来实现集合,但是dicts可以包含来自不同类型的元素。
答案 0 :(得分: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
等方法中控制类型,你应该覆盖生成新集合的调用(self.__class__(common)
)
再见