Академический Документы
Профессиональный Документы
Культура Документы
Ejemplo
Explicacin:
La funcin saludar contiene:
3 funciones, un diccionario. Devuelve el valor de un diccionario que es una de las 3 funciones
def saludar(lang): def saludar_es(): print Hola def saludar_en(): print Hi def saludar_fr(): print Salut lang_func = ,es: saludar_es, en: saludar_en, fr: saludar_fr} return lang_func[lang]
f = saludar(es) f()
filter(function, sequence)
Explicacin:
La funcion filter verifica que los elementos de una secuencia cumplan una determinada condicin, devolviendo una secuencia con los elementos que cumplen esa condicin. Es decir, para cada elemento de sequence se aplica la funcin function; si el resultado es True se aade a la lista y en caso contrario se descarta.
Explicacin:
La funcin reduce aplica una funcin a pares de elementos de una secuencia hasta dejarla en un solo valor El ejemplo suma todos los elementos de una lista
def sumar(x, y): return x + y l = [1, 2, 3] l2 = reduce(sumar, l)
Funciones lambda
Existe un operador llamado lambda que sirve para crear funciones annimas, (on line) que no podrn ser utilizadas luego pues no tienen nombre. Las funciones lambda se construyen mediante el operador lambda, los parmetros de la funcin separados por comas (atencin, SIN parntesis), dos puntos (:) y el cdigo de la funcin.
def es_par(n): return (n % 2.0 == 0) l = [1, 2, 3] l2 = filter(es_par, l)
Comprensin de listas
La comprensin de listas es una caracterstica tomada del lenguaje de programacin funcional Haskell que est presente en Python desde la versin 2.0 y consiste en una construccin que permite crear listas a partir de otras listas. Es una tcnica que va a reemplazar a las funciones map, filter y reduce a partir de Python 3.0 Cada una de estas construcciones consta de una expresin que determina cmo modificar el elemento de la lista original, seguida de una o varias clausulas for y opcionalmente una o varias clausulas if.
Comprensin de listas
def cuadrado(n): return n ** 2 l = [1, 2, 3] l2 = map(cuadrado, l) def es_par(n): return (n % 2.0 == 0) l = [1, 2, 3] l2 = filter(es_par, l) l = [0, 1, 2, 3] m = *a, b+ n = [] for s in m: for v in l: if v > 0: n.append(s* v)
l2 = [n ** 2 for n in l]
Decoradores
Un decorador no es es mas que una funcin que recibe una funcin como parmetro y devuelve otra funcin como resultado. Por ejemplo podramos querer aadir la funcionalidad de que se imprimiera el nombre de la funcin llamada por motivos de depuracin
def mi_decorador(funcion): def nueva(*args): print Llamada a la funcion, funcion.__name__ retorno = funcion(*args) return retorno return nueva
Como vemos el cdigo de la funcin mi_decorador no hace ms que crear una nueva funcin y devolverla. Esta nueva funcin imprime el nombre de la funcin a la que decoramos, ejecuta el cdigo de dicha funcin, y devuelve su valor de retorno.
Decoradores
def mi_decorador(funcion): def nueva(*args): print Llamada a la funcion, funcion.__name__ retorno = funcion(*args) return retorno return nueva