‫Bienvenido de nuevo.
‫En este video, quiero hablar sobre un concepto importante, que es el retorno.
‫Es una palabra clave en Python que veremos mucho cuando trabajemos con funciones.
‫Así que echemos un vistazo.
‫Si digo que quiero crear una función llamada suma, que, por cierto, ya existe en Python, pero vamos a
‫crear la nuestra propia y voy a decir número uno por número uno.
‫Y número dos, bueno, nuestra función de suma va a sumar nueve uno más el número dos, función agradable y simple.
‫Ahora, si ejecuto algunos con los números cuatro y cinco, ¿adivinen qué va a pasar?
‫Voy a pegarle a correr.
‫Y no pasa nada, lo que quiero decir, puede que no te sorprenda, porque no estamos imprimiendo nada, ¿verdad?
‫Pero, ¿y si ejecuto imprimir aquí?
‫¿Cambiará esto?
‫Vamos a ver.
‫Hmm, no tengo ninguno.
‫¿Es eso lo que esperabas y no hemos visto ninguno antes?
‫Bien, quiero decir, ¿recuerdas cuando teníamos una lista, digamos uno a tres, y luego hicimos algo así
‫como aclararlo?
‫En nuestro Ed, nos dio esta pequeña flecha y dijo ninguno, y hablamos sobre esta idea de en listas,
‫algo como borrar cambia la lista real y borra todo y vacía la lista.
‫Pero no devuelve una nueva lista.
‫Simplemente modifica la lista existente, pero en su lugar simplemente no nos devuelve ninguno.
‫Bueno, las funciones son así.
‫Siempre tienen que devolver algo.
‫Y cuando no devuelven nada como no hay palabra clave de retorno aquí, automáticamente devuelve ninguno.
‫Entonces, si no tenemos algo como regresar aquí, siempre no devolverá nada.
‫Pero si agregamos retorno, dirá tan pronto como lleguemos, como, oye.
‫Quiero que salgas de esta función, y cuando salgas de esta función, quiero que devuelvas lo que sea que nos dé
‫esta expresión, si hago clic en ejecutar.
‫Tengo nueve.
‫Si cambiamos esto a 10.
‫Más cinco, obtenemos 15.
‫Y esta es una buena regla general con funciones, porque las funciones pueden hacer dos cosas, ¿verdad?
‫Uno, puede devolver algo.
‫Entonces, al final de la función, lo que sea, después de que se ejecute la función, devolvemos
‫algo Nunn o algún tipo de valor, algún tipo de tipo de datos, o podemos tener una función que no
‫devuelve nada pero quizás modifica alguna cosa.
‫Entonces, por ejemplo, podría imprimir.
‫Hola.
‫Y si hubiera corrido hasta aquí.
‫No devuelvo ninguno porque no tengo esa declaración de devolución, sin embargo, mi función hace algo que modifica.
‫Bueno, el aspecto de este impuesto, cierto, un príncipe alto para nosotros.
‫Entonces, una función modifica algo en nuestro programa o devuelve algo.
‫Y este es un tema bastante avanzado que abordaremos más
‫adelante cuando hablemos de programación funcional, pero una buena regla general con las funciones es que una función debería hacer una cosa realmente bien.
‫Y normalmente una función debería devolver algo.
‫Ahora, esto no significa que cualquier función que quizás haga varias cosas o cualquier función que no devuelva
‫algo sea mala, pero en general es una buena práctica hacer que su código sea simple y legible, tener
‫estas dos reglas.
‫Por ejemplo, aquí, si tengo print y además, will, esta función está haciendo varias cosas.
‫Se preocupa por la impresión y también por algo.
‫Y la definición de esta función se llama algunos.
‫Quiero decir, si no supiera o no vi esto y todo lo que hice fue ejecutar un poco, creo que tener una
‫impresión alta sería sorprendente porque el nombre realmente no describe lo que hace.
‫Quiero decir, espero que esto sea en algún momento.
‫¿Por qué mi programa dice hola?
‫Entonces, ¿queremos asegurarnos de que nuestra función hace una cosa y solo una cosa realmente?
‫Bueno, porque como veremos más adelante, podemos combinar y ejecutar diferentes funciones juntas.
‫Y luego también queremos asegurarnos de que devolvemos algo, porque de esta manera, lo que podemos hacer
‫es realmente asignar este valor de retorno a una variable.
‫Por ejemplo, puedo decir que el total es igual a unos 10.
‫Cinco.
‫Y debido a que esta función devuelve algo y cuando se hace, la ejecución tendrá 15 como valor, eso es
‫lo mismo que estamos haciendo aquí.
‫Y aquí está la parte interesante ahora que puedo ejecutar tal vez unos 10.
‫Más total.
‫Ahora, repasemos esto uno por uno.
‫Defino mi función, el intérprete de Python va a decir, está bien, sé lo que es ahora que lo
‫has definido.
‫Lo voy a guardar en la memoria.
‫Continuará, continuará hasta la línea siete.
‫Y va a decir, oye, quiero una variable total y quiero que esa variable total sea igual a unos 10
‫cinco.
‫Y antes de que asignemos algo a Python total, ¿el intérprete dirá algo de qué?
‫Algunos de nuevo.
‫Oh, lo recuerdo aquí.
‫Está en la memoria, está bien, en algunos casos le daré los argumentos 10 y cinco.
‫Entonces va a ejecutar esa función.
‫Tan pronto como terminemos con este paréntesis de cierre, se irá al sol.
‫Va a decir, oye, nadie va a igualar diez.
‫Oye, el número dos va a ser igual a cinco.
‫Ahora vamos a la línea dos y va a decir, oye, quiero que sumes diez más cinco porque sé cuáles son
‫estas variables.
‫Y luego, una vez que hayas terminado con eso y esto se convierta en 15, quiero que regreses.
‫Entonces, el intérprete de Python, finalmente, cuando termine de llamar a algunos, dirá, oye, asigne el valor
‫de 15 a la variable total y luego pasará a la siguiente línea.
‫Oye, quiero imprimir algo.
‫¿Qué quieres imprimir?
‫Bueno, quiero imprimir esto.
‫Va a decir, oye, lo que algunos sé lo que hay en esto.
‫Lo tengo en la memoria.
‫Y de nuevo, va a decir diez.
‫Y luego el siguiente argumento será total.
‫Oye, ¿cuál es el total?
‫Déjame ir a la memoria y averiguarlo.
‫Oh, son 15.
‫Entonces es como decir 50.
‫Y este es el poder de las funciones, cierto, puedo devolver cosas y asignarlas a variables y llamarlas
‫así y puedo seguir ejecutándolas si quiero.
‫Si quiero hacer esto aún más simple, puedo ir.
‫Algunos en lugar del total estarán aquí.
‫Y mira eso ahora.
‫Lo tengo todo en una línea y si hago clic en ejecutar.
‫Una vez más, todavía funciona.
‫Está bien, pero ¿y si hacemos algo como esto?
‫¿Qué pasa si digo definir algunos y luego digo definir dentro de aquí otra función y esta función toma el número
‫uno y el número dos?
‫Y aquí, finalmente regresamos el número uno y el número dos.
‫Hmm, probemos esto.
‫¿Qué piensas tú que sucederá?
‫Bueno, primero, digamos que el total es igual a 10 más 20.
‫Y luego voy a imprimir el total.
‫Si hago clic, corre.
‫No consigo ninguno.
‫Ahora bien, ¿por qué es eso y esto debería ser obvio para ti, porque aquí estoy diciendo, oye, quiero que
‫definas algo y qué vamos a hacer con la función?
‫Bueno, dentro de aquí, voy a definir otra función.
‫Pero esta declaración de devolución en realidad no se ejecuta.
‫Bien, porque todo lo que estamos haciendo dentro de este bloque, este bloque de código.
‫En esta parte estamos definiendo la función, pero nunca llamamos a otra función.
‫Entonces esto devuelve ninguno.
‫Y hemos perdido la capacidad de llamar a esta función.
‫Entonces, ¿cómo podemos resolver esto?
‫Una forma es regresar, ¿verdad?
‫Entonces, al final aquí, tenemos que asegurarnos de que la sangría sea correcta y vamos a devolver otra función.
‫Así que agreguemos return y veamos qué sucede aquí.
‫Si hago clic, corre.
‫Muy bien, obtengo esta función ahora, por lo que el total será igual a esta función que devolvimos y está en la
‫memoria.
‫Está bien, pero no obtengo el resultado que quiero, ¿verdad?
‫¿Y por qué es eso?
‫Porque si bien no llamamos a esta función, hay algunas formas en que podemos hacer esto.
‫Podemos darle los parámetros o los argumentos aquí.
‫Entonces digamos 10, 20.
‫Y si hago clic, corro.
‫Tengo 30 o si queremos quedarnos lo que sea que le demos aquí, simplemente puedo decir otro funk.
‫Entonces, si le damos el número uno y el número dos y hago clic en ejecutar.
‫Oye, mira eso, obtengo 30.
‫Ahora, este video puede que tenga que verlo una y otra vez, porque estira un poco
‫su mente y, para ser honesto, esta función no es muy buena porque está bien, es muy confusa.
‫Su función debe ser fácil de entender.
‫Por lo tanto, es posible que queramos cambiar esto un poco, tal vez en lugar de tener los mismos nombres de parámetros
‫solo para aclararlo.
‫Quizás podamos decir uno y dos.
‫Y luego aquí lo hacemos.
‫Y uno más y dos para aclarar que cuando devolvemos esta otra función, estoy usando los parámetros, número uno y
‫número dos que llamamos aquí.
‫Porque a esta definición de función realmente no le importa cuáles son estas cosas.
‫Solo le importa cuando se llama a otra función.
‫Ahora, si necesita pausar el video y mirar esto y tal vez practicarlo un poco,
‫es completamente comprensible.
‫Pero quería mostrarte el poder del retorno.
‫Puede tener funciones anidadas como lo haría con los condicionales, pero debe tener cuidado de
‫que su función devuelva algo, de lo contrario, no devolverá ninguno.
‫Y la mayoría de las veces querrá devolver algo de una función para que podamos hacer algo como esto
‫en el que lo asignamos a una variable para poder usarlo más adelante en nuestros programas.
‫Nos vemos en el próximo.
‫Una última cosa, una palabra clave de retorno sale automáticamente de la función de modo que aquí, si agregué otra
‫pieza de código como imprimir, ¿hola?
‫O tal vez incluso tenga la devolución cinco aquí, verá que todavía es válida, pero si ejecuto esto.
‫Todavía obtengo 30 porque el intérprete nunca llega a la línea cinco y seis, porque tan pronto como
‫devolvemos algo de una función, sale de esa función.
‫Y la razón por la que esta parte no sale de la función es porque, recuerde, dentro de esta función,
‫estamos definiendo.
‫Entonces, en realidad, no estamos ejecutando esta parte.
‫Solo decimos, oye, cuando vemos que aparece otra función en nuestro código, sabemos cuál es, pero no
‫la vamos a ejecutar.
‫Entonces se verá así.
‫Y tan pronto como vea la declaración de retorno, cuando se enfríe, dirá,
‫está bien, salgo de esta función con este valor.
‫Solo un pequeño aviso.