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 |