我有一个自定义的字典类 (collections.MutablMapping
),实际对象比较复杂,但我的问题很简单,如何在*args
和**kwargs
之外向__init__
方法传递自定义参数,这些参数会传递给dict()
。
class TestDict(collections.MutableMapping):
def __init__(self, *args, **kwargs):
self.store = dict()
self.update(dict(*args, **kwargs))
self.custom_name = None #how to pass custom name outside of the dict args?
def __getitem__(self, key):
return self.store[key]
def __setitem__(self, key, value):
self.store[key] = value
def __delitem__(self, key):
del self.store[key]
def __len__(self):
return len(self.store)
def __iter__(self):
return iter(self.store)
def __repr__(self):
return str(self.store)
编辑:(我的评论代码,不确定这是否是正确的方法,特别是如果有多个keyname参数需要放入self而不是dict()):
def __init__(self, *args, **kwargs):
try: custom_name = kwargs.pop('custom_name')
except: custom_name = None
self.store = dict()
self.update(dict(*args, **kwargs))
self.custom_name = custom_name
__init__(self, custom_name, *args, **kwargs)
吗? - netcoder