Maison > développement back-end > Tutoriel Python > Comment corriger les erreurs de syntaxe des arguments imbriqués dans Python 3 ?

Comment corriger les erreurs de syntaxe des arguments imbriqués dans Python 3 ?

DDD
Libérer: 2024-11-07 02:08:02
original
804 Les gens l'ont consulté

How to Fix Nested Argument Syntax Errors in Python 3?

Syntaxe des arguments imbriqués dans Python 3

Le code Python 2 donné tente de définir une fonction avec des arguments imbriqués, mais cette syntaxe n'est plus prise en charge dans Python 3.

Description de l'erreur

L'erreur rencontrée est :

SyntaxError: invalid syntax
Copier après la connexion

Le problème spécifique est dans la définition de la fonction d'ajout :

def add(self, (sub, pred, obj)):
Copier après la connexion

Argument imbriqué Déballage

Dans Python 2, il était possible d'utiliser des tuples imbriqués comme arguments des fonctions, la fonction divisant le tuple lors du déballage des paramètres. Cependant, dans Python 3, les arguments de décompression du tuple ont été supprimés.

Solution

Pour résoudre ce problème, vous devez décompresser manuellement le tuple dans la définition de la fonction. Cela peut être fait en attribuant explicitement chaque élément à des variables distinctes :

def add(self, sub_pred_obj):
    sub, pred, obj = sub_pred_obj
Copier après la connexion

Informations supplémentaires

  • Pour les fonctions lambda, vous ne pouvez pas utiliser d'affectations pour décompresser. Au lieu de cela, envisagez d'utiliser une seule variable et une indexation pour accéder aux éléments du tuple.
  • Des outils tels que 2to3, modernize ou futurize peuvent aider à convertir le code Python 2.x en Python 3.x en identifiant et en suggérant des correctifs pour les éléments imbriqués. problèmes de syntaxe des arguments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal