Diese Frage stellt das Gegenteil von fest, das namedtuple von einer Basisklasse geerbt hat in Python , wo es darum geht, eine Unterklasse von einem Nametuple zu erben und nicht umgekehrt.
Bei normaler Vererbung funktioniert das:
%Vor%[out]:
%Vor% Aber wenn die Basisklasse ein namedtuple
ist:
[out]:
%Vor%Die Frage, ist es möglich, Nametuples als Basisklasse in Python zu erben? Ist das so?
Sie können, aber Sie müssen __new__
überschreiben, das implizit vor __init__
:
Aber d
wird nur ein unabhängiges Attribut sein!
Ich denke, Sie können erreichen, was Sie wollen, indem Sie alle Felder einbeziehen
im ursprünglichen benannten Tupel, dann die Anzahl der Argumente anpassen
mit __new__
wie schwobaseggl oben suggeriert. Zum Beispiel, um zu adressieren
Max-Fall, wo einige der Eingabewerte berechnet werden sollen
anstatt direkt geliefert zu werden, funktioniert Folgendes:
Tags und Links python inheritance oop super namedtuple