REVIT ARCHITECTURE (936) – PYTHON – Funciones (20) – La palabra clave global

Siguiendo el artículo REVIT ARCHITECTURE (935) – PYTHON – Funciones (19) – Alcance (2) puede surgir la siguiente pregunta: ¿Una función no puede modificar una variable definida fuera de ella?

Afortunadamente, la respuesta es no.

Hay un método especial en Python, que puede extender el ámbito de una variable de una manera que incluya los cuerpos de las funciones (incluso si se quiere no solo leer los valores, sino también modificarlos).

Este efecto es causado por una palabra clave llamada global:

7265

Usar esta palabra clave dentro de una función con el nombre (o nombres separados por comas) de una(s) variable(s), obliga a Python a no crear una nueva variable dentro de la función; se usará en su lugar la que es accesible desde fuera.

En otras palabras, este nombre se vuelve global (tiene un ámbito global, y no importa si es objeto de lectura o asignación).

Hemos añadido global a la función del artículo REVIT ARCHITECTURE (935) – PYTHON – Funciones (19) – Alcance (2).

El código ahora muestra de la siguiente manera con la creación de Global:

7266

  • Definición de la función my_function:

7267

  • Declaración de la variable global var:

7268

La palabra clave global se usa para indicar que la variable var dentro de la función no es una nueva variable local, sino que se refiere a la variable global var definida fuera de la función. Esto permite que la función pueda modificar la variable global var.

  • Asignación de un valor a var:

7269

Aquí, se asigna el valor 2 a la variable var. Dado que var se ha declarado como global, esta asignación modifica la variable global var, no una nueva variable local.

  • Impresión del valor de var:

7270

Esta línea imprime el mensaje «Do I know that variable?» seguido del valor de var, que es 2.

Fuera de la función

  • Inicialización de la variable global var:

7271

Antes de llamar a la función, la variable global var se inicializa con el valor 1.

  • Llamada a la función my_function:

7272

Esta línea llama a la función my_function. Durante la ejecución de esta función, var se modificará de 1 a 2, y se imprimirá «Do I know that variable? 2».

  • Impresión del valor global de var:

7273

Después de la llamada a la función, se imprime el valor de la variable global var. Dado que la función my_function ha cambiado var a 2, esta línea imprimirá 2.

Resumen:
El código realiza lo siguiente:

Define una función que modifica una variable global.
Inicializa una variable global con un valor.
Llama a la función que modifica esa variable global.
Imprime el valor de la variable global antes y después de la llamada a la función.

El resultado del código es:

7274

Esto demuestra que la palabra clave global permite que la función my_function modifique la variable global var, cambiándola de 1 a 2.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario