Python namedlist FACTORY 默认值

Python namedlist FACTORY default with values

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 带有工厂值的字段?

您需要向 FACTORY 提供一个函数,在调用时创建一个新对象。

A = namedlist('A', [('x', FACTORY(lambda: [1, 2]))])