假设我有:
from collections import namedtuple
NT = namedtuple('name', ['x'])
谁能解释一下它们之间的区别:
NT.x = 3var = NT(x=3)
我可以将 NT.x 更改为任何(可变的)但 var.x 是不可变的。为什么会这样?
请您参考如下方法:
NT 不是命名元组。 NT 是一个类。它的实例是命名元组。
您不能在实例上重新分配 x。虽然您可以在技术上弄乱类上的 x,但这会破坏实例的 x 属性的属性访问,因为 x 在类上是 descriptor该实例依赖于实现相应的实例属性。
