Python中的namedlist包类似于collections.namedtuple,允许可变实例。
声明可变的默认值需要使用FACTORY
,例如:
from namedlist import namedlist, FACTORY
A = namedlist('A', [('x', FACTORY(list))])
我现在需要该列表具有默认值,但下面的代码不起作用:
A = namedlist('A', [('x', FACTORY(list([1, 2])))])
下面的代码创建了一个包含默认值的列表,但A
的每个实例都将指向同一个对象,这就是我们首先需要工厂的原因:
A = namedlist('A', [('x', [1, 2])])
如何使用带有值的工厂创建namedlist
字段?
答案 0 :(得分:1)
您需要为 FACTORY
提供一个函数,该函数在调用时会创建一个新对象。
A = namedlist('A', [('x', FACTORY(lambda: [1, 2]))])