def fun(a, b, c, d):
print('a:', a, 'b:', b, 'c:', c, 'd:', d)
por que este funciona
fun(3, 7, d=10, *(23,))
e imprime:
a: 3 b: 7 c: 23 d: 10
mientras esto
fun(3, 7, c=10, *(23,))
no
Traceback (most recent call last):
File "/home/lookash/PycharmProjects/PythonLearning/learning.py", line 10, in <module>
fun(3, 7, c=10, *(23,))
TypeError: fun() got multiple values for argument 'c'
@ Error-SyntacticalRemorse. Creo que te estás perdiendo el punto. OP ha encontrado un caso en el que realmente puede poner un posicional después de una palabra clave, y funciona.
—
Físico loco
@MadPhysicist veo eso. Pero estaba más que simplemente haciendo una declaración de que el desempaquetado de tuplas no debería tener lugar después de los argumentos de palabras clave. Así lo hice como un comentario, no como una respuesta.
—
Error - Remordimiento sintáctico
Impresionante pregunta. Nunca supe que esto era una cosa.
—
Error - Remordimiento sintáctico
SyntaxError: positional argument follows keyword argument
.