我有以下的命名元组:
from collections import namedtuple
ReadElement = namedtuple('ReadElement', 'address value')
然后我想要以下内容:
LookupElement = namedtuple('LookupElement', 'address value lookups')
两个namedtuple之间存在重复,我该如何子类化ReadElement以包含一个额外的字段?
class LookupElement(ReadElement):
def __new__(self, address, value, lookups):
self = super(LookupElement, self).__new__(address, value)
l = list(self)
l.append(lookups)
return tuple(l)
不过,元组是在new语句中创建的,如果我将self修改为列表,则会失去类型信息,我该如何避免这种情况?
hypot
示例。 - Etherealnamedtuple
对象的子类上的附加属性不会反映在_fields
属性中。如果您需要共享其他方法或属性,请考虑将这些放在混合类上,并在多个namedtuple
类之间重用它们。 - Martijn Pieters