4

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

defaultdict(myobj, param1)

然后是我的obj:

class myobj(object):

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

1 回答 1

6

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

d = defaultdict(lambda: myobj(param1))

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

import functools
d = defaultdict(functools.partial(myobj, param1))
于 2013-08-05T20:11:39.877 回答