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 agarrar 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.