Argumentos anidados en Python 3
Al ejecutar código Python que incluye argumentos de tupla anidados como parámetros de función, es posible encontrar un error de sintaxis:
File "/usr/local/lib/python3.2/dist-packages/simpletriple.py", line 9 def add(self, (sub, pred, obj)): ^ SyntaxError: invalid syntax
Causas
En Python 3, se eliminó el descomprimido del parámetro tupla. Esto significa que las funciones ya no pueden aceptar tuplas como argumentos y descomprimirlas directamente en variables.
Solución: descomprimir manualmente
Para resolver el error de sintaxis, debe modificar la función para descomprimir manualmente la tupla en variables individuales. Aquí hay un ejemplo:
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 modificación descomprime la tupla sub_pred_obj en las variables individuales sub, pred y obj.
Nota adicional
Si la función es una función lambda, no es posible desembalarlo manualmente. En su lugar, considere pasar la tupla como un único parámetro y acceder a sus elementos mediante indexación:
lambda xy: (xy[1], xy[0]) # Instead of: lambda (x, y): (y, x)
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3