‫Vaya, hay un código en la pantalla y parece terriblemente confuso.
‫Este es un ejemplo de una función realmente enrevesada y complicada que nunca escribiría, pero que será buena
‫para fines de ejercicio.
‫Y estamos hablando específicamente de esto aquí mismo llamado no local.
‫En realidad, es una nueva palabra clave en Python tres.
‫Y como puede ver, mi Reppel ni siquiera lo nota.
‫Por lo tanto, ni siquiera se resalta en azul porque es una característica nueva.
‫Pero sí quiero hablar contigo sobre eso y hacerte saber lo que hace.
‫La palabra clave de clave no local se utiliza para referirse a esta parte, este local principal.
‫Es una forma de decir, oye, quiero usar una variable que no es una variable global, pero que está fuera
‫del alcance de mi función.
‫Entonces, según esa definición, intente pausar el video y vea qué puede hacer esta función, la ejecutaré ahora
‫mismo y luego revisaré el código si hago clic en ejecutar.
‫Esto es lo que obtenemos.
‫Así que hablemos de esto.
‫Tenemos una función externa y luego llamamos a la función externa.
‫Entonces, el intérprete de Python va a decir, está bien, tenemos una variable X que es local
‫a la función externa.
‫Y luego, dentro de aquí, vamos a definir una función interna, otra función.
‫Y aquí, incluso antes de llamar a eso, saltamos en la línea nueve y decimos, está bien, llame a la función interna.
‫Regresamos y decimos, oye, línea cinco, quiero usar una X no local.
‫Mmm.
‫¿Qué significa eso?
‫Bueno, quiero usar esta variable X porque no es local.
‫Es decir, no quiero crear una nueva variable X.
‫Quiero saltar el alcance a mis padres, buscar a mi padre local y tomar todo lo que encuentres allí.
‫Siempre que no sea una variable global, cualquier padre servirá.
‫Quiero agarrar ese no local.
‫Entonces ahora esta X se refiere a la función externa aquí.
‫Entonces, cuando decimos que X es igual a no local, estamos asignando esta nueva cadena.
‫Y reemplazando este local para que cuando imprimimos interactúe, obtengamos no local, pero también cuando imprimimos
‫la X externa, hemos modificado este alcance externo con la palabra clave nonlocal.
‫Entonces eso también se vuelve no local.
‫Si elimino esta línea y la comento y hago clic en ejecutar.
‫Verá la diferencia ahora que tenemos el no local interno, pero luego el local externo no se ha modificado porque
‫esta es una nueva variable.
‫Nuevamente, sostengo que esto en realidad hace que su código sea más complicado de lo necesario.
‫Por lo tanto, hay casos especiales en los que es posible que desee usar esto, pero si puede intentar hacer
‫que su código sea predecible, donde puede evitar el uso de cosas como no locales y globales, tenga en cuenta que están ahí por
‫una razón porque son útiles en algunos situaciones.
‫Dicho esto, tenga en cuenta, haga que su código sea predecible, limpie su código y nos vemos en el
‫siguiente video.