Estoy aprendiendo a usar argumentos posicionales en Python y también tratar de ver cómo funcionan cuando se mezcla con los argumentos por defecto: -Uso de los argumentos por defecto antes de argumentos posicionales
def withPositionalArgs(ae=9,*args):
print 'ae= ', ae
print 'args = ', args
a=1
b=2
c=[10,20]
withPositionalArgs(a,b,c)
Esto me da la salida:
ae= 1
args = (2, [10, 20])
como se puede ver, a
se considera que es un valor que pasaba por ae
y b
, así como c
se consideran los argumentos posicionales.
Por lo tanto, ahora estoy tratando de asignar 10
para ae
mientras llama withPositionalArgs
:
withPositionalArgs(ae=10,b,c)
Pero, no puedo hacerlo. Me sale el error:
SyntaxError: non-keyword arg after keyword arg
Mi pregunta es:
estoy haciendo correctamente? ¿Se permite el argumento predeterminado o una buena práctica antes de los argumentos posicionales en las funciones de Python?
Se le podría llamar con 'withPositionalArgs (10, B, C)'. –
Lo "sorprendente" es que llamar ... (1, ae = 2) arroja 'TypeError: ...() obtuvo varios valores para el argumento de palabra clave 'ae''. –