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)
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