将参数传递给defaultdict创建的对象

时间:2013-08-05 20:10:53

标签: python defaultdict

我希望有一个默认的dict,它在构造一个新对象时包含一个参数。这有可能吗,有没有更好的方法呢?

defaultdict(myobj, param1)

然后myobj:

class myobj(object):

    def __init__(self, param1):
        self.param1 = param1

1 个答案:

答案 0 :(得分:6)

defaultdict接受任何可调用的,因此您可以创建一个不接受参数的新函数,并返回一个使用您想要的参数实例化的对象。

d = defaultdict(lambda: myobj(param1))

另一种选择是使用functools.partial,它创建一个具有预定义参数的一个(或多个)函数:

import functools
d = defaultdict(functools.partial(myobj, param1))