我想要一个默认的字典,它在构造一个新对象时包含一个参数。这可能吗,有更好的方法吗?
defaultdict(myobj, param1)
然后是 myobj:
class myobj(object):
def __init__(self, param1):
self.param1 = param1
最佳答案
defaultdict
接受任何可调用对象,因此您可以创建一个不接受参数的新函数并返回使用您想要的参数实例化的对象。
d = defaultdict(lambda: myobj(param1))
另一种选择是使用 functools.partial,它会创建一个带有一个(或多个)预定义参数的函数:
import functools
d = defaultdict(functools.partial(myobj, param1))
关于python - 将参数传递给 defaultdict 创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066837/