Verschachtelte Argumente in Python 3
Beim Ausführen von Python-Code, der verschachtelte Tupelargumente als Funktionsparameter enthält, kann ein Syntaxfehler auftreten:
File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9 def add(self, (sub, pred, obj)): ^ SyntaxError: invalid syntax
Ursachen
In Python 3 wurde das Entpacken von Tupelparametern entfernt. Dies bedeutet, dass Funktionen keine Tupel mehr als Argumente akzeptieren und diese direkt in Variablen entpacken können.
Lösung: Manuell entpacken
Um den Syntaxfehler zu beheben, müssen Sie Änderungen vornehmen die Funktion zum manuellen Entpacken des Tupels in einzelne Variablen. Hier ist ein Beispiel:
<code class="python">def add(self, sub_pred_obj): # Previous syntax: def add(self, (sub, pred, obj)) sub, pred, obj = sub_pred_obj # ... rest of the function</code>
Diese Modifikation entpackt das sub_pred_obj-Tupel in die einzelnen Variablen sub, pred und obj.
Zusätzlicher Hinweis
Wenn es sich bei der Funktion um eine Lambda-Funktion handelt, ist ein manuelles Entpacken nicht möglich. Erwägen Sie stattdessen, das Tupel als einzelnen Parameter zu übergeben und über die Indizierung auf seine Elemente zuzugreifen:
<code class="python">lambda xy: (xy[1], xy[0]) # Instead of: lambda (x, y): (y, x)</code>
Das obige ist der detaillierte Inhalt vonWarum gibt Python 3 einen Syntaxfehler aus, wenn verschachtelte Tupelargumente verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!