2011-12-27 15 views
8
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'): 
    print "-- This parrot wouldn’t", action 
    print "if you put", voltage, "volts through it." 
    print "-- Lovely plumage, the", type 
    print "-- It’s", state, "!" 

Empecé a aprender python. Puedo llamar a esta función usando loro (5, 'muerto') y loro (voltaje = 5). Pero ¿por qué no puedo llamar con la misma función con loro (voltaje = 5, 'muerto')?Parámetros de la función - Python

Respuesta

13

No se puede usar un argumento que no sea de palabras clave ('arg_value') después de un argumento de palabra clave (arg_name='arg_value'). Esto se debe a cómo está diseñado Python.

ve aquí: http://docs.python.org/tutorial/controlflow.html#keyword-arguments

Por lo tanto, debe introducir todos los argumentos después de una palabra clave-argumento como palabra clave-argumentos ...

# instead of parrot(voltage=5, 'dead'): 
parrot(voltage=5, state='dead') 

# or: 
parrot(5, state='dead') 

# or: 
parrot(5, 'dead') 
+2

loro (5, estado = 'muerto') también sería válido –

+0

@NathanW Yup, agregó eso a mi código de ejemplo ahora. – poplitea

Cuestiones relacionadas