Python命名列表FACTORY默认值

时间:2016-08-19 17:36:21

标签: python python-2.7 namedtuple

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字段?

1 个答案:

答案 0 :(得分:1)

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

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