Parámetros y argumentos
Algunas funciones internas que vimos necesitan argumentos.
Por ejemplo:
- Cuando se llama a
math.sin(90), se le pasa el número como argumento. - Algunas funciones necesitan más de un argumento. Por ejemplo,
math.pow(6,2)toma dos: la base y el exponente.
Dentro de las funciones, los argumentos son asignados a variables llamadas parámetros. A continuación mostramos un ejemplo de una función definida por el usuario que recibe un argumento:
def muestra_dos_veces(nombre):
print(nombre)
print(nombre)
Esta función asigna el argumento a un parámetro llamado nombre. Cuando la función es llamada, imprime el valor del parámetro (sea este el que sea) dos veces.
Esta función funciona con cualquier valor que pueda ser mostrado en pantalla.
muestra_dos_veces('Spam')
'''
Spam
Spam
'''
muestra_dos_veces(17)
'''
17
17
'''
muestra_dos_veces(math.pi)
'''
3.14159265359
3.14159265359
'''
Las mismas reglas de composición que se aplican a funciones internas, también se aplican a las funciones definidas por el usuario, de modo que podemos usar cualquier tipo de expresión como argumento para muestra_dos_veces.
muestra_dos_veces('Spam '*4)
'''
Spam Spam Spam Spam
Spam Spam Spam Spam
'''
muestra_dos_veces(math.cos(math.pi))
'''
-1.0
-1.0
'''
El argumento es evaluado antes de que la función sea llamada, así que en los ejemplos, la expresión Spam*4 y math.cos(math.pi) son evaluadas una vez.
También se puede usar una variable como argumento:
miguel = 'Miguel'
muestra_dos_veces(miguel)
'''
Miguel
Miguel
'''
El nombre de la variable que pasamos como argumento, miguel, no tiene nada que ver con el nombre del parámetro, nombre. No importa cómo se llame el valor en origen (en la llamada); dentro de muestra_dos_veces siempre se llamará nombre.
Funciones con más de un parámetro
Las funciones pueden tener desde ningún parámetro hasta el número que deseemos. Por lo general, las funciones no deberían tener un número muy elevado de parámetros, aunque eso depende del caso particular de cada problema.
Para definir una función con más de un parámetro, estos parámetros se definen dentro de los paréntesis separados por comas:
def funcion1(parametro1, parametro2, parametro3, ...)
Cuando se realiza la llamada a estas funciones, el orden de los parámetros es importante, dado que el primer valor dentro del paréntesis de la llamada a función corresponderá con el primer parámetro de la función. El segundo valor, con el segundo parámetro, etc.
funcion1(valor_para_parametro1, valor_para_parametro2, valor_para_parametro3, ...)