我有一些具有属性字典的对象,obj.attrs
. 为方便起见,这些对象的构造函数接受 dict 和/或**kwargs
。
它看起来有点像这样:
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={}
。
有任何想法吗?