‫Quiero abordar una pregunta que puede que tenga o no, pero es algo que
‫me ha costado años entender, y es por eso que ¿por qué no tener todo como variables globales?
‫Quiero decir, toda esta confusión de quién tiene acceso a quién, qué tan fácil sería si todo estuviera solo
‫en la página principal, toda nuestra información, todos los datos en nuestro alcance global para que todo tenga acceso
‫a todo.
‫¿No sería eso más fácil?
‫Y tendrías razón.
‫Quiero decir, eso haría que todo este dolor de cabeza desapareciera, ¿verdad?
‫Pero debes recordar que las máquinas no tienen potencia infinita, no tienen CPU infinita, no
‫tienen memoria infinita, todas tienen recursos limitados.
‫Y como programadores, tenemos que ser conscientes de qué recursos usamos porque a veces eso nos puede costar dinero, a
‫veces eso puede hacer fallar nuestras computadoras.
‫Y el alcance es una gran demostración de esto.
‫Por ejemplo, este código aquí mismo, cuando se ejecuta esta función, estamos creando técnicamente solo una
‫ubicación en la memoria para la variable X.
‫Entonces tenemos esa estantería en nuestra computadora que es X que apunta a local cuando realmente llamamos a esta
‫función.
‫Y luego, cuando decimos no local aquí, bueno, estamos diciendo que simplemente no cree otra estantería para nosotros.
‫Simplemente use el que ya tenemos y asígnelo no local.
‫Si no tuviéramos esta línea, para cuando llegamos a la línea siete, hemos colocado en la memoria X igual a local y
‫X igual a no local.
‫Así que ahora tenemos dos ubicaciones en la memoria.
‫Ahora, esto no es gran cosa porque, bueno, en esta época, tenemos mucha memoria.
‫Pero a medida que los programas se hacen más y más grandes, esto se convierte en un pequeño problema.
‫Está bien, pero ¿qué pasa con una función?
‫Quiero decir, aprendimos que las funciones nos permiten no repetirnos y poder llamar varias
‫veces.
‫Pero otro buen uso de las funciones es que una vez que llamamos a esta función y todo esto está
‫hecho, la computadora y el intérprete de Python destruyen específicamente toda esta memoria.
‫Es decir, una vez que terminemos con la función externa, realmente no puedo llamar a print X aquí.
‫Me va a dar un error.
‫Dirá que no tengo idea de lo que existe.
‫¿Y por qué es eso?
‫Es porque después de llamar a esta función, el Python se llamará, el recolector de basura dirá, oye,
‫parece que hemos terminado con esta función.
‫Y veo que esta variable X bien, y esta variable X no la vamos a usar porque hemos terminado con esta
‫función.
‫Así que voy a recoger esa basura y luego simplemente tirarla.
‫Así que voy a vaciar ese armario de memoria para que otros recursos u otros programas puedan usarlo.
‫Y esa es una característica realmente agradable en la que Python simplemente los elimina automáticamente para que no obstruya
‫la memoria de la computadora.
‫Y es por eso que SCOP es útil.
‫No tenemos que pensar en ello con tanto detalle como lo he mencionado, pero es bueno
‫saber que está ahí para que sus programas no acaparen mucha memoria y puedan ejecutarse de manera eficiente.
‫Este es un tema un poco avanzado, pero quería incluirlo aquí para que pueda pensar por qué los programas
‫están diseñados de la forma en que están.
‫Está bien.
‫Voy a dejar de hablar ahora.
‫Te veo en el siguiente video.
‫Adiós.