Arguments imbriqués dans Python 3
Lors de l'exécution de code Python qui inclut des arguments de tuple imbriqués comme paramètres de fonction, il peut y avoir une erreur de syntaxe :
File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9 def add(self, (sub, pred, obj)): ^ SyntaxError: invalid syntax
Causes
Dans Python 3, la décompression des paramètres de tuple a été supprimée. Cela signifie que les fonctions ne peuvent plus accepter les tuples comme arguments et les décompresser directement dans des variables.
Solution : Décompresser manuellement
Pour résoudre l'erreur de syntaxe, vous devez modifier la fonction pour décompresser manuellement le tuple en variables individuelles. Voici un exemple :
def add(self, sub_pred_obj): # Previous syntax: def add(self, (sub, pred, obj))
sub, pred, obj = sub_pred_obj
# ... rest of the function
Cette modification décompresse le tuple sub_pred_obj dans les variables individuelles sub, pred et obj.
Note supplémentaire
Si la fonction est une fonction lambda, le déballage manuel n'est pas possible. Au lieu de cela, envisagez de passer le tuple en tant que paramètre unique et d'accéder à ses éléments via l'indexation :
lambda xy: (xy[1], xy[0]) # Instead of: lambda (x, y): (y, x)
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3