logo

Variables globales y locales en Python

Variables globales de Python son aquellos que no están definidos dentro de ninguna función y tienen un alcance global, mientras que Python variables locales son aquellos que se definen dentro de una función y su alcance se limita únicamente a esa función. En otras palabras, podemos decir que las variables locales son accesibles sólo dentro de la función en la que se inicializó, mientras que las variables globales son accesibles en todo el programa y dentro de cada función.

Variables locales de Python

Las variables locales en Python son aquellas que se inicializan dentro de una función y pertenecen únicamente a esa función en particular. No se puede acceder a él desde ningún lugar fuera de la función. Veamos cómo crear una variable local.



Creando variables locales en Python

Definición y acceso a variables locales.

Python3








def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()>

>

>

Producción

I love Geeksforgeeks>

¿Se puede utilizar una variable local fuera de una función?

los 10 mejores hentai

Si intentamos utilizar esta variable local fuera de la función, veamos qué sucede.

Python3




def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)>

>

>

Producción:

 NameError : name 's' is not defined>

Variables globales de Python

Son aquellos que están definidos fuera de cualquier función y a los que se puede acceder desde todo el programa, es decir, dentro y fuera de cada función. Veamos cómo crear una variable global de Python.

Crear una variable global en pitón

Definición y acceso a variables globales de Python.

Python3




# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)>

>

>

Producción

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

La variable s se define como la variable global y se usa tanto dentro como fuera de la función.

Nota: Como no hay variables locales, se utilizará el valor de las globales, pero asegúrese de que tanto las variables locales como las globales tengan el mismo nombre.

¿Por qué usamos variables locales y globales en Python?

Ahora bien, ¿qué pasa si hay una variable de Python con el mismo nombre inicializada dentro de una función y también globalmente? Ahora surge la pregunta, ¿la variable local tendrá algún efecto sobre la variable global o viceversa, y qué pasará si cambiamos el valor de una variable dentro de la función f()? ¿Afectará también a los globales? Lo probamos en el siguiente código:

Ejemplo

Si una variable con el mismo nombre también se define dentro del alcance de la función, imprimirá el valor dado dentro de la función únicamente y no el valor global.

Python3

inteligencia artificial y agentes inteligentes




# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)>

>

>

Producción

Me too. I love Geeksforgeeks>

Ahora bien, ¿qué pasa si intentamos cambiar el valor de una variable global dentro de la función? Veámoslo usando el siguiente ejemplo.

Python3




# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()>

>

>

Producción:

 UnboundLocalError : local variable 's' referenced before assignment>

Para que el programa anterior funcione, necesitamos usar la palabra clave global en Python. Veamos cuál es esta palabra clave global.

comparación de león y tigre

La palabra clave global

Sólo necesitamos usar el palabra clave global en una función si queremos hacer asignaciones o cambiar la variable global. global no es necesario para imprimir y acceder. Python supone que queremos una variable local debido a la asignación a s dentro de f(), por lo que la primera declaración arroja el mensaje de error. Cualquier variable que se cambie o se cree dentro de una función es local si no ha sido declarada como variable global. Para decirle a Python que queremos usar la variable global, tenemos que usar la palabra clave global , como se puede ver en el siguiente ejemplo:

Ejemplo 1: Usando la palabra clave global de Python

Python3




# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)>

>

>

Producción

Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>

Ahora no hay ambigüedad.

Ejemplo 2: Usando variables globales y locales de Python

Python3

cadena.formato




a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)>

>

>

Producción

global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>

Diferencia b/n Variable Local Vs. Variables globales

Base de comparación Variable global Variable local
Definición declarado fuera de las funciones declarado dentro de las funciones
Toda la vida Se crean cuando comienza la ejecución del programa y se pierden cuando finaliza el programa. Se crean cuando la función comienza su ejecución y se pierden cuando finaliza la función.
Compartir datos Ofrece intercambio de datos No ofrece intercambio de datos.
Alcance Se puede acceder a través del código. Solo se puede acceder dentro de la función.
Parámetros necesarios el paso de parámetros no es necesario el paso de parámetros es necesario
Almacenamiento Una ubicación fija seleccionada por el compilador. Se mantienen en la pila.
Valor Una vez que el valor cambia, se refleja en todo el código. una vez cambiada la variable no afecta otras funciones del programa