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

Patricia Arquette
Freigeben: 2024-11-05 19:21:02
Original
135 Leute haben es durchsucht

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)):
                  ^
Nach dem Login kopieren

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
Nach dem Login kopieren

Für Lambda-Funktionen ist es im Allgemeinen vorzuziehen, das Entpacken insgesamt zu vermeiden. Anstatt zu verwenden:

lambda (x, y): (y, x)
Nach dem Login kopieren

Es wird empfohlen zu schreiben:

lambda xy: (xy[1], xy[0])
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!