我们刚刚学习了如何将转换namedtuple为dict。反过来呢?我们又如何将其转换为字典实例?
实验证明,namedtuple它带有一种称为的方法._asdict()。因此,转换它就像调用方法一样简单。
>>> blue = Color(r=0, g=0, b=255, alpha=1.0)
>>> blue._asdict()
{'r': 0, 'g': 0, 'b': 255, 'alpha': 1.0}
复制代码
您可能想知道为什么该方法以_开头。这是与Python的常规规范不一致的一个地方。通常,_代表私有方法或属性。但是,namedtuple为了避免命名冲突将它们添加到了公共方法中。除了_asdict,还有_replace,_fields和_field_defaults。您可以在这里找到所有这些。
要将namedtupe转换为常规元组,只需将其传递给tuple构造函数即可。
>>> tuple(Color(r=50, g=205, b=50, alpha=0.1))
(50, 205, 50, 0.1)
复制代码