Seite 1 von 1
namedtuple-Definition
Verfasst: Dienstag 18. Dezember 2012, 09:35
von Goswin
Warum muss ich bei einer namedtuple-Definition den Namen zweimal eingeben, zum Beispiel:
Was für einen Sinn soll es haben, wenn ich aus einer Laune heraus
schreibe, was soweit ich überblicke genauso gut funktioniert? Das namedtuple könnte doch implizit automatisch so heißen, wie ich es nenne, also hier 'Punkt'!
Re: namedtuple-Definition
Verfasst: Dienstag 18. Dezember 2012, 09:44
von BlackJack
@Goswin: Das könnte nicht implizit so heissen weil die Funktion `namedtuple()` keine Möglichkeit hat heraus zu finden an welchen Namen ihr Ergebnis nach dem sie abgearbeitet wurde gebunden wird. `namedtuple()` ist ja nicht irgendeine Spezialsyntax, sondern ein ganz normaler Aufruf. Man muss das Ergebnis ja nicht einmal an einen Namen binden. Das erste Argument ist dazu da, dass man beispielsweise bei Debug-Ausgaben etwas sinnvolles erhält. Wenn Du Punkt-Objekte dann als 'Kuckuck' ausgegeben haben möchtest, hindert Dich natürlich niemand daran.
Re: namedtuple-Definition
Verfasst: Dienstag 18. Dezember 2012, 10:19
von Goswin
Vielen Dank. Wenn ich das richtig verstanden habe, sollte ich für Debug-Zwecke wohl am besten etwas wie
Code: Alles auswählen
Punkt = collections.namedtuple("namedtuple_Punkt", "x y z")
oder oft einfach nur
schreiben.
Re: namedtuple-Definition
Verfasst: Dienstag 18. Dezember 2012, 10:32
von EyDu
Nein. Übergib einfach den gewünschten Namen und fertig. In den meisten Fällen wird es der gleiche sein wie die linke Seite der Zuweisung.