Python で Set クラスを作成したいのですが、既に Python で実装されている set クラスとは異なり、set には 1 つのタイプの要素のみを含めたいと考えています。たとえば、整数のセット、文字列のセット、およびその他のユーザー定義クラスのセットです。
Python で型をパラメーターとしてクラスに渡す方法はありますか? またはそれを行う他の方法は?
dict を使用してセットを実装することを考えていましたが、dict にはさまざまなタイプの要素を含めることができます。
そのような何か?
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)
のようなメソッドでもタイプのコントロールが必要な場合は、新しい Set( )intersection
の生成の呼び出しをオーバーライドする必要があります。self.__class__(common)
さよなら