Definiendo funciones
En Python, la definición de funciones se realiza mediante la instrucción def más un
nombre de función descriptivo -para el cuál, aplican las mismas reglas que para el nombre
de las variables- seguido de paréntesis de apertura y cierre. Como toda estructura de
control en Python, la definición de la función finaliza con dos puntos (:) y el algoritmo que
la compone, irá identado con 4 espacios:
def mi_funcion():
# aquí el algoritmo
Una función, no es ejecutada hasta tanto no sea invocada. Para invocar una función,
simplemente se la llama por su nombre:
def mi_funcion():
funcion()
Cuando una función, haga un retorno de datos, éstos, pueden ser asignados a una
variable:
def funcion():
frase = funcion()
print frase
Un parámetro es un valor que la función espera recibir cuando sea llamada (invocada), a
fin de ejecutar acciones en base al mismo. Una función puede esperar uno o más
parámetros (que irán separados por una coma) o ninguno.
# algoritmo
Los parámetros, se indican entre los paréntesis, a modo de variables, a fin de poder
utilizarlos como tales, dentro de la misma función.
Los parámetros que una función espera, serán utilizados por ésta, dentro de su algoritmo,
a modo de variables de ámbito local. Es decir, que los parámetros serán variables
locales, a las cuáles solo la función podrá acceder:
def mi_funcion(nombre, apellido):
print nombre_completo
Si quisiéramos acceder a esas variables locales, fuera de la función, obtendríamos un
error:
print nombre_completo
print nombre
Al llamar a una función, siempre se le deben pasar sus argumentos en el mismo
orden en el que los espera. Pero esto puede evitarse, haciendo uso del paso de
argumentos como keywords (ver más abajo: "Keywords como parámetros").
print parametro_fijo
print argumento
print parametro_fijo
print argumento
print calcular(*datos)
El mismo caso puede darse cuando los valores a ser pasados como parámetros a una
función, se encuentren disponibles en un diccionario. Aquí, deberán pasarse a la función,
precedidos de dos asteriscos (**):
print calcular(**datos)
Sintaxis
Para empezar primero veremos como podemos definir o declarar una función.
def sumar():
pass
Para declarar una función solo se debe poner la palabra "def" seguido del nombre
de la función, para el ejemplo le hemos puesto "sumar", en los paréntesis deben
ir los parámetros, ya hablaremos de eso más adelante, por último la
palabra "pass" es el contenido de la función. Siempre tengan en cuenta
la identación dentro de la función.
def sumar():
print 5 + 10
sumar()
Con esto tenemos una función que suma 5 + 10, para llamar o activar a esta
función, ponemos el nombre la función seguido de paréntesis.
Parámetros
sumar(10, 15) # 25
Con esto nuestra función sumar ahora recibe 2 parámetros, si ejecutan esto verán
que el resultado es 25. Sigamos viendo más variaciones en los parametros.
sumar(10, 15) # 25
sumar(10) # 30
En este caso el parámetro number2 tiene un valor por defecto, esto quiere decir
que cuando NO se le envie ese parámetro a la función, por
defecto number2tomará el valor de 20.
sumar(number2=10, number1=15) # 25
def sumar(numbers):
result = 0
for number in numbers:
result += number
print result
sumar([4,5]) # 9
def sumar(**numbers):
print numbers # {'number1' : 10, 'number2' : 20}
print numbers['number1'] + numbers['number2']
sumar(number1=10, number2=20) # 30
De esta forma podemos enviar varios parámetros, y tomarlos en una sola variable.