Ámbito de las variables
Índice:
- Ámbito
- Ámbito local
- Funciones dentro de otra función
- Ámbito global
- Variables con el mismo nombre
- Palabra reservada global
- Ámbito para una lista o para un diccionario
Scope o Ámbito
Decimos que el “scope”(en inglés) es el ámbito donde “viven” las variables.
Hay distintos ámbitos y estos definen si se puede (o no) acceder a las variables.
Ámbito local
Las variables creadas dentro de una función pertenecen solo a la función. No pueden ser accedidas desde afuera
|
|
|
|
Función dentro de una Función
En este caso definimos x dentro de mifuncion() pero x también puede ser accedida por la función interna funcInterna().
|
|
Ámbito global
Una variable creada en el cuerpo principal del programa es global y pertenece al “ámbito global”. Las variables globales están disponibles dentro de cualquier ámbito, tanto local como global.
|
|
Variables con el mismo nombre
Si trabajamos con variables del mismo nombre dentro y fuera de una función, el intérprete las trata como dos variables distintas, una que estará global (fuera de la función) y otra local(dentro de la función).
|
|
Palabra reservada global
Si se necesita crear una variable global dentro de un ámbito local se puede usar la palabra reservada global.
Recuerde que realizar esto no es considerado una buena práctica de programación, debe usarse lo menos posible.
|
|
Se puede usar para cambiar el valor de una variable global dentro de una función
|
|
Listas y diccionarios como argumentos
Las listas y los diccionarios, como estudiamos en encuentros anteriores, son mutables.
Cuando se las pasamos a una función, no estamos pasando los valores como hacemos habitualmente, sino que estamos pasando la lista/diccionario en sí misma/o. Esto quiere decir que: cualquier cambio que se realice en la lista/diccionario dentro de la función va a modificar a la variable (lista o diccionario) original.
Esto solo sucede con los objetos mutables:
- list (lista)
- dict (diccionario)
- sets (conjunto)
Con los inmutables no ocurre:
- int
- float
- bool
- string
- tuple
|
|
|
|