【发布时间】:2014-11-28 14:31:41
【问题描述】:
我在 python 中有一个命名的元组类
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
我想将 Town 实例转换为字典。我不希望它与城镇中字段的名称或数量严格绑定。
有没有办法编写它,以便我可以添加更多字段,或者传递一个完全不同的命名元组并获取字典。
我不能像在其他人的代码中那样更改原始类定义。所以我需要获取一个 Town 实例并将其转换为字典。
【问题讨论】:
-
btw...查看制表符完成或
dir命令,它将显示任何对象的字段...直接显示_asdict函数。 -
看起来你真正想要做的是
dict的子类而不是'namedtuple',并将namedtuple传递给初始化程序。请记住,如果你习惯了 Cxx,class Town(x)不是构造函数,def __init__(self, *args, **kwargs)里面是。 -
我无法将原始类更改为其他人代码中的类。所以我必须从 namedtouble 子类化
-
@CorleyBrigman 你能解释一下吗?我试图找到有关命名 touple 的文档,或者找到我可以调用它的内容,但我无法弄清楚如何。 (再次重申,python 不是我最擅长的语言)
-
哪一部分?
dir只是一个 python 内置...你可以在 any python 对象、控制台或脚本中运行它(它返回一个列表,你可以打印或做任何事情) ,它将返回对象的(几乎)所有属性的列表。如果您想弄清楚未知对象的工作原理,这很有帮助。
标签: python dictionary tuples namedtuple