Ho la seguente tupla nome:Python: Estensione di un nome tupla predefinito
from collections import namedtuple
ReadElement = namedtuple('ReadElement', 'address value')
e poi voglio il seguente:
LookupElement = namedtuple('LookupElement', 'address value lookups')
C'è doppioni tra le due namedtuples, come posso sottoclasse ReadElement per contenere un campo aggiuntivo?
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)
Tuttavia la tupla viene creato lì un poi nella nuova dichiarazione , se modifico sé ad essere un elenco sarò perdere le informazioni sul tipo, come posso evitare questo?
questo è esattamente quello che volevo, grazie – Har
Questo è ciò che la documentazione suggeriscono di fare, ma cosa succede se hai un namedtuple con un campo generato? – Ethereal
@Ethereal: tutte le classi namedtuple sono personalizzate. L'attributo '_fields' rifletterà ancora i campi effettivi sulla classe. –