Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-11-07 02:08:02706parcourir

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

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

def add(self, (sub, pred, obj)):

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

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!

Déclaration:
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