Entwickler können beim Kompilieren von Python-Code in ein Modul auf einen Syntaxfehler stoßen die versuchte Definition verschachtelter Argumente. Während derselbe Code in IDLE mit der Option „Modul ausführen“ nahtlos ausgeführt wird, kann bei der Verteilung ein Fehler ähnlich dem folgenden auftreten:
SyntaxError: invalid syntax File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9 def add(self, (sub, pred, obj)): ^
Dieser Fehler tritt aufgrund der Entfernung auf des Entpackens von Tupelargumenten in Python 3, wie in PEP 3113 erläutert.
Um dies zu beheben Fehler auftritt, sollte der Code geändert werden, um das Tupel als einzelnen Parameter zu übergeben und es manuell zu entpacken. Der betroffene Code, def add(self, (sub, pred, obj)):, sollte wie folgt überarbeitet werden:
def add(self, sub_pred_obj): sub, pred, obj = sub_pred_obj
Für Lambda-Funktionen ist es im Allgemeinen vorzuziehen, das Entpacken insgesamt zu vermeiden. Anstatt zu verwenden:
lambda (x, y): (y, x)
Es wird empfohlen zu schreiben:
lambda xy: (xy[1], xy[0])
Um die Erkennung und Behebung dieses Problems zu erleichtern, können Entwickler Programme verwenden B. „2to3“, „modernisieren“ oder „futurisieren“, um ihren Python 2.x-Code auf Python 3.x umzugestalten und so effektiv geeignete Lösungen zu identifizieren und vorzuschlagen Behandlung verschachtelter Argumente.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen Syntaxfehler beim Definieren verschachtelter Argumente in Python 3?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!