Palavra-chave global do Python
Palavra-chave global do Python
Neste artigo, você aprenderá sobre a palavra-chave global, variável global e quando usar palavras-chave globais.
Antes de ler este artigo, certifique-se de ter algumas noções básicas sobre variáveis globais, locais e não locais do Python.
Qual é a palavra-chave global
Em Python,
global
palavra-chave permite que você modifique a variável fora do escopo atual. Ele é usado para criar uma variável global e fazer alterações na variável em um contexto local. Regras da palavra-chave global
As regras básicas para
global
palavra-chave em Python são:- Quando criamos uma variável dentro de uma função, ela é local por padrão.
- Quando definimos uma variável fora de uma função, ela é global por padrão. Você não precisa usar
global
palavra-chave. - Usamos
global
palavra-chave para ler e escrever uma variável global dentro de uma função. - Uso de
global
palavra-chave fora de uma função não tem efeito.
Uso de palavra-chave global
Vamos dar um exemplo.
Exemplo 1:Acessando a variável global de dentro de uma função
c = 1 # global variable
def add():
print(c)
add()
Quando executamos o programa acima, a saída será:
1
No entanto, podemos ter alguns cenários em que precisamos modificar a variável global de dentro de uma função.
Exemplo 2:modificando a variável global de dentro da função
c = 1 # global variable
def add():
c = c + 2 # increment c by 2
print(c)
add()
Quando executamos o programa acima, a saída mostra um erro:
UnboundLocalError: local variable 'c' referenced before assignment
Isso ocorre porque só podemos acessar a variável global, mas não podemos modificá-la de dentro da função.
A solução para isso é usar o
global
palavra-chave. Exemplo 3:alterando a variável global de dentro de uma função usando global
c = 0 # global variable
def add():
global c
c = c + 2 # increment by 2
print("Inside add():", c)
add()
print("In main:", c)
Quando executamos o programa acima, a saída será:
Inside add(): 2 In main: 2
No programa acima, definimos c como uma palavra-chave global dentro do
add()
função. Então, incrementamos a variável c por 2 , ou seja,
c = c + 2
. Depois disso, chamamos o add()
função. Finalmente, imprimimos a variável global c . Como podemos ver, a mudança também ocorreu na variável global fora da função,
c = 2
. Variáveis globais em módulos Python
Em Python, criamos um único módulo
config.py
para armazenar variáveis globais e compartilhar informações entre módulos Python dentro do mesmo programa. Aqui está como podemos compartilhar variáveis globais nos módulos python.
Exemplo 4:compartilhar uma variável global entre módulos Python
Crie um
config.py
arquivo, para armazenar variáveis globais
a = 0
b = "empty"
Crie um
update.py
arquivo, para alterar variáveis globais
import config
config.a = 10
config.b = "alphabet"
Crie um
main.py
arquivo, para testar mudanças no valor
import config
import update
print(config.a)
print(config.b)
Quando executamos o
main.py
arquivo, a saída será 10 alphabet
Acima, criamos três arquivos:
config.py
, update.py
e main.py
. O módulo
config.py
armazena variáveis globais de a e b . No update.py
arquivo, importamos o config.py
módulo e modifique os valores de a e b . Da mesma forma, no main.py
arquivo, importamos tanto config.py
e update.py
módulo. Finalmente, imprimimos e testamos os valores das variáveis globais, sejam elas alteradas ou não. Global em funções aninhadas
Aqui está como você pode usar uma variável global na função aninhada.
Exemplo 5:usando uma variável global em uma função aninhada
def foo():
x = 20
def bar():
global x
x = 25
print("Before calling bar: ", x)
print("Calling bar now")
bar()
print("After calling bar: ", x)
foo()
print("x in main: ", x)
A saída é:
Before calling bar: 20 Calling bar now After calling bar: 20 x in main: 25
No programa acima, declaramos uma variável global dentro da função aninhada
bar()
. Dentro de foo()
função, x não tem efeito da palavra-chave global. Antes e depois de chamar
bar()
, a variável x pega o valor da variável local, ou seja, x = 20
. Fora do foo()
função, a variável x terá o valor definido no bar()
função, ou seja, x = 25
. Isso ocorre porque usamos global
palavra-chave em x para criar uma variável global dentro do bar()
função (escopo local). Se fizermos alguma alteração dentro do
bar()
função, as alterações aparecem fora do escopo local, ou seja, foo()
. python