Я следующее имя кортеж:Python: Расширение предопределенного имени кортежа
from collections import namedtuple
ReadElement = namedtuple('ReadElement', 'address value')
и затем я хочу следующего:
LookupElement = namedtuple('LookupElement', 'address value lookups')
Существует дублирование между два namedtuples, как я могу подкласс 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)
Однако кортеж создается там, то в новом заявления, если я могу изменить себя, чтобы быть список, который я потеряет информацию о типе, как я могу избежать этого?
то будет именно то, что я хотел, спасибо – Har
Это то, что документы предлагают делать, но что, если у вас есть собственный namedtuple с порожденным полем? – Ethereal
@Ethereal: все классы namedtuple являются обычными. Атрибут '_fields' по-прежнему будет отображать фактические поля в классе. –