summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2019-11-26 15:43:30 +0100
committerEkaitz Zarraga <ekaitz@elenq.tech>2019-11-26 15:43:30 +0100
commit4972cf161747c5e41ddf7092d7a8247dfc45610a (patch)
treebf6c5b961a0e2faa356dcebfaa62ab597f428919 /src
parent678e0c8f1b1f96f5184e8934c52c2fec62be8d9c (diff)
lo que has aprendido: funciones
Diffstat (limited to 'src')
-rw-r--r--src/04_funciones.md35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/04_funciones.md b/src/04_funciones.md
index 47577d7..c99ef04 100644
--- a/src/04_funciones.md
+++ b/src/04_funciones.md
@@ -577,7 +577,8 @@ ayuda buscaría la ayuda de la función devuelta por el decorador (`run` en el
ejemplo). Usando `@functools.wraps`[^functools] podemos resolver este
problema.
-[^functools]: Puedes leer por qué y cómo en la documentación oficial de python:
+[^functools]: Puedes leer por qué y cómo en la documentación oficial de
+ python:
<https://docs.python.org/3/library/functools.html#functools.wraps>
La realidad es que los *decorators* son una forma muy elegante de añadir
@@ -602,3 +603,35 @@ aquí tienes la receta:
## Lo que has aprendido
+
+Este capítulo puede que sea el más complejo de todos los que te has encontrado
+y te encontrarás. En él has aprendido a declarar y a usar funciones, cosa
+sencilla, y todos los conceptos importantes relacionados con ellas. Un
+conocimiento que es útil en python, pero que puede ser extendido a casi
+cualquier lenguaje.
+
+Partiendo del *scope*, has aprendido la diferencia entre lo *local* y lo
+*global*. Después, has comprendido que las funciones en python son sólo un
+valor más, como puede ser un `int`, y que pueden declararse en cualquier lugar,
+lo que te abre la puerta a querer declarar funciones sencillas sin nombre, que
+se conocen como funciones *lambda*.
+
+Una vez has aclarado que las funciones son ciudadanos de primera clase
+(*first-class citizens*) ya estabas preparado para afrontar la realidad del
+*scope* donde has tratado los contextos y cómo funcionan definiendo el concepto
+del *scope léxico* que, colateralmente, te ha enseñado lo que es una *closure*,
+un método para implementarlo.
+
+Pero no había quedado claro en su momento cómo funcionaban los argumentos de
+entrada y las llamadas a las funciones, así que has tenido ocasión de ver por
+primera vez lo que es un *callable* en python, aunque se te ha prometido
+analizarlo en el futuro.
+
+El último detalle que has aprendido son los tipos de argumentos de entrada que
+pueden recibir las funciones, *positional* y *keyword*, y cómo se utilizan en
+todas sus posibles formas.
+
+Finalmente, para agrupar todo esto en un único concepto, se te han mostrado los
+*decorators*, aunque de forma muy general, con el fin de que vieras que todo lo
+que se ha tratado en este capítulo aparece en conceptos avanzados y es
+necesario entenderlo si quieren llegar a usarse de forma eficiente.