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 Tupel nicht mehr als Argumente akzeptieren und sie 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:
def add(self, sub_pred_obj): # Previous syntax: def add(self, (sub, pred, obj))
sub, pred, obj = sub_pred_obj
# ... rest of the function
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:
lambda xy: (xy[1], xy[0]) # Instead of: lambda (x, y): (y, x)
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3