1

Python で Set クラスを作成したいのですが、既に Python で実装されている set クラスとは異なり、set には 1 つのタイプの要素のみを含めたいと考えています。たとえば、整数のセット、文字列のセット、およびその他のユーザー定義クラスのセットです。

Python で型をパラメーターとしてクラスに渡す方法はありますか? またはそれを行う他の方法は?

dict を使用してセットを実装することを考えていましたが、dict にはさまざまなタイプの要素を含めることができます。

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)

のようなメソッドでもタイプのコントロールが必要な場合は、新しい Set( )intersectionの生成の呼び出しをオーバーライドする必要があります。self.__class__(common)

さよなら

于 2013-08-07T09:25:59.193 に答える