我正在用Python构建SQL仿真器并存储行,我想使用namedtuple,因为我可以使用select、order和where轻松地处理复杂的查询。我从普通元组开始,但我经常发现自己正在寻找行的属性,并且需要维护列的顺序,所以我得到了namedtuple。问题是,我的一些列名带有前导下划线,这使我最终使用了ValueError: Field names cannot start with an underscore: '_c
谁能解释一下为什么NamedTuples和不可变的structs是分开的,而不是NamedTuples是匿名函数,就像有匿名函数function (x) x^2 end一样?它们在概念上看起来具有相同的结构(我也想知道它们是否有不同的内存布局),尽管它们有不同的访问字段的方法(如下例所示)。为struct实现NamedTuple方法似乎非常合理,但我可能不知道有什么好的理由不这样做。struct X