"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o Python 3 apresenta um erro de sintaxe ao usar argumentos de tupla aninhados?

Por que o Python 3 apresenta um erro de sintaxe ao usar argumentos de tupla aninhados?

Publicado em 2024-11-10
Navegar:585

Why Does Python 3 Give a Syntax Error When Using Nested Tuple Arguments?

Argumentos aninhados em Python 3

Ao executar código Python que inclui argumentos de tupla aninhados como parâmetros de função, pode-se encontrar um erro de sintaxe:

File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9
    def add(self, (sub, pred, obj)):
                  ^
SyntaxError: invalid syntax

Causas

No Python 3, a descompactação do parâmetro tupla foi removida. Isso significa que as funções não podem mais aceitar tuplas como argumentos e descompactá-las diretamente em variáveis.

Solução: descompacte manualmente

Para resolver o erro de sintaxe, você precisa modificar a função para descompactar manualmente a tupla em variáveis ​​individuais. Aqui está um exemplo:

def add(self, sub_pred_obj): # Previous syntax: def add(self, (sub, pred, obj))
    sub, pred, obj = sub_pred_obj
    # ... rest of the function

Esta modificação descompacta a tupla sub_pred_obj nas variáveis ​​individuais sub, pred e obj.

Nota adicional

Se a função for uma função lambda, a descompactação manual não será possível. Em vez disso, considere passar a tupla como um único parâmetro e acessar seus elementos via indexação:

lambda xy: (xy[1], xy[0]) # Instead of: lambda (x, y): (y, x)
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3