属性の辞書を持つオブジェクトがいくつかありますobj.attrs
。これらのオブジェクトのコンストラクターは**kwargs
、便宜上、 dict および/または を受け入れます。
次のようになります。
class Thing:
def __init__(self, attrs={}, **kwargs):
for arg in kwargs:
attrs[arg] = kwargs[arg]
self.attrs = attrs
そのようなことThing({'color':'red'})
は と同じThing(color='red')
です。
私の問題は、コンストラクターが渡された最後の値をどういうわけか覚えていることです。attrs
例えば:
>>> thing1 = Thing(color='red')
>>> thing2 = Thing()
>>> thing2.attrs
{'color': 'red'}
...しかしthing2.attrs
、空の辞書である必要があります!{}
これは、両方 **kwargs
とのような引数を使用しても問題ないのではないかと思いattrs={}
ました。
何か案は?