Mam następujący nazwie krotki:Python: Rozszerzanie predefiniowany nazwie krotki
from collections import namedtuple
ReadElement = namedtuple('ReadElement', 'address value')
a następnie chcę następujący:
LookupElement = namedtuple('LookupElement', 'address value lookups')
Jest powielanie między dwoma namedtuples, jak mogę podklasy ReadElement, aby zawrzeć dodatkowe pole?
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)
jednak krotka jest tam stworzył następnie w nowego oświadczeniu, jeśli mogę zmienić siebie, aby być lista stracę typ informacji, w jaki sposób można tego uniknąć?
to dokładnie to, co chciałem, dzięki – Har
To co docs sugerują robi, ale co zrobić, jeśli masz własny namedtuple z pola generowanego? – Ethereal
@ Ethereal: wszystkie klasy namedtuple są niestandardowe. Atrybut '_fields' nadal będzie odzwierciedlał rzeczywiste pola na klasie. –