Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich einen Syntaxfehler beim Definieren verschachtelter Argumente in Python 3?

Warum erhalte ich einen Syntaxfehler beim Definieren verschachtelter Argumente in Python 3?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 19:21:02294Durchsuche

Why Do I Get a Syntax Error When Defining Nested Arguments in Python 3?

Python 3: Syntaxfehler beim Definieren verschachtelter Argumente

Fehlerkontext

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)):
                  ^

Ursache

Dieser Fehler tritt aufgrund der Entfernung auf des Entpackens von Tupelargumenten in Python 3, wie in PEP 3113 erläutert.

Lösung

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])

Automatisierte Tools

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:eq und ne in PyTorchNächster Artikel:eq und ne in PyTorch