问题标签 [namedtuple]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
15642 浏览

python - 将文档字符串添加到命名元组?

是否可以以简单的方式将文档字符串添加到命名元组?

我试过

但这并没有削减它。是否有可能以其他方式进行?

0 投票
2 回答
11409 浏览

python - 将 namedtuple._replace 与变量一起用作字段名

我可以使用变量引用命名元组字段吗?

0 投票
5 回答
43872 浏览

python - namedtuple._replace() 不像文档中描述的那样工作

我在实现时遇到了麻烦namedtuple._replace(),所以我直接从文档中复制了代码:

我得到了:

代替:

如文档中所示。

我在 Windows 7 上使用 Python 2.6

这是怎么回事?

0 投票
7 回答
21422 浏览

python - 如何检查对象是否是命名元组的实例?

如何检查对象是否是Named tuple的实例?

0 投票
3 回答
6170 浏览

python - 用许多@properties 扩展Python namedtuple?

如何使用许多额外的 @properties 扩展或子类命名元组?
对于少数人,可以只写下面的文字;但是有很多,所以我正在寻找发电机或物业工厂。一种方法是从中生成文本_fields并执行它;另一个是在运行时具有相同效果的 add_fields。
(我的@props 是获取分散在多个表中的数据库中的行和字段,因此rec.pname是这样persontable[rec.personid].pname;但是 namedtuples-with-smart-fields 也有其他用途。)

0 投票
1 回答
2973 浏览

python - 有什么比 namedtuples _replace 更好的选择?

拿这个代码:

parts._replace works但由于它是一种带下划线的方法,它应该是内部的,而不是使用的。有替代方案吗?我不想这样做:

因为这使它成为一个普通的元组,而不是一个命名元组,并且这样做:

有点愚蠢。:)

想法?

0 投票
3 回答
2115 浏览

python - 可通过属性名称或索引选项访问的结构

我对 Python 非常陌生,并试图弄清楚如何创建一个具有可通过属性名称或索引访问的值的对象。例如,os.stat() 返回 stat_result 或 pwd.getpwnam() 返回 struct_passwd 的方式。

在试图弄清楚时,我只遇到过上述类型的 C 实现。在 Python 中没有什么特别的。创建这种对象的 Python 原生方式是什么?

如果这已经被广泛报道,我深表歉意。在寻找答案时,我一定错过了一些使我无法找到答案的基本概念。

0 投票
13 回答
518671 浏览

python - Python中的“命名元组”是什么?

阅读Python 3.1 中的变化,我发现了一些……意想不到的东西:

sys.version_info 元组现在是一个命名元组

我以前从未听说过命名元组,我认为元素可以通过数字(如在元组和列表中)或键(如在 dicts 中)来索引。我从没想过它们会被双向索引。

因此,我的问题是:

  • 什么是命名元组?
  • 如何使用它们?
  • 为什么/何时应该使用命名元组而不是普通元组?
  • 为什么/何时应该使用普通元组而不是命名元组?
  • 是否有任何类型的“命名列表”(命名元组的可变版本)?
0 投票
2 回答
8010 浏览

python - 通过子类化修改命名元组的构造函数参数?

我想创建一个namedtuple代表短位域中的各个标志的。我正在尝试对其进行子类化,以便在创建元组之前解压缩位域。但是,我目前的尝试不起作用:

现在,我的经验super()是有限的,而且我的经验__new__几乎不存在,所以我不太确定(对我来说)神秘的错误该怎么办TypeError: super.__new__(Status): Status is not a subtype of super。谷歌搜索和挖掘文档并没有产生任何启发性。

帮助?

0 投票
3 回答
6379 浏览

inheritance - 在 Python 中,当它是一次性的命名元组时,我如何调用超类?

所以,我有大量用于串行 API 的消息负载类,每个类都有一些不可变字段、一个解析方法和一些共享的方法。我构建它的方式是,每个都将从一个命名元组继承字段行为,并从父类接收公共方法。但是,我在构造函数方面遇到了一些困难:

这有效,但我收到以下警告:

如果我**kwargs从通话中删除,它似乎仍然有效,但为什么呢?构造函数的这些参数是如何传递给命名元组的?这是有保证的,还是mro如何建立的随机结果?

如果我想远离超级,并以旧方式做,有什么方法可以访问 namedtuple 来调用它的构造函数吗?我宁愿不必这样做:

似乎有点冗长和不必要。

我在这里最好的做法是什么?