[Python-de] Tuple-Entpacking-Mysterie

Gerson Kurz gerson.kurz at pergamon-software.de
Fre Okt 24 13:32:17 CEST 2003


Ich bin gerade auf ein seltsames Verhalten gestossen:

class foo:
    def __init__(self):
        self.a = 0
        self.b = 0
        self.c = 0

    def fromTuple(self, t):
        self.a,
        self.b,
        self.c = t
        print self.a,self.b,self.c
        self.a,self.b,self.c = t
        print self.a,self.b,self.c

foo().fromTuple( (1,2,3) )

Die Ausgabe ist:

0 0 (1, 2, 3)
1 2 3

Jetzt, wo ich es weiß, kann ich das im Programm entsprechend ändern;
trotzdem, wer kann mir das erklären? Ich wollte ursprünglich das Entpacken
in mehrere Zeilen schreiben, weil ich Variablen mit langen Namen, etwa

self.blablaFoorZeug,
self.irgendwasAnderes,
self.nochWasGanzSpeziellesImAllgemeinen = t

hatte. Kann ich bei Tuple-Unpacking Statements auf mehreren Zeilen überhaupt
nutzen ?