dict の機能を拡張するクラスを作成したいと考えています。これまでの私のコードは次のとおりです。
class Masks(dict):
def __init__(self, positive=[], negative=[]):
self['positive'] = positive
self['negative'] = negative
コンストラクターに 2 つの事前定義された引数が必要です: ポジティブ マスクとネガティブ マスクのリストです。次のコードを実行すると、実行できます
m = Masks()
新しい mask-dictionary オブジェクトが作成されます - これで問題ありません。しかし、辞書でできるように、このマスクオブジェクトを作成できるようにしたいと思います:
d = dict(one=1, two=2)
しかし、これはマスクで失敗します:
>>> n = Masks(one=1, two=2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'two'
親コンストラクターinitをマスクのどこかで呼び出す必要があります。おそらく初期化します。親コンストラクターに渡して試してみました**kwargs
が、それでも何か問題がありました。ここに何を追加すればよいか教えてもらえますか?