Ao programar em Python, você pode se deparar com a necessidade de acessar ou modificar uma variável global, mesmo estando dentro de uma função. Entender como usar corretamente variáveis globais pode evitar erros e garantir que seu código funcione como esperado.
Entendendo Variáveis Globais em Python
Uma variável global é aquela que pode ser acessada de qualquer parte do seu programa, incluindo dentro de funções. No entanto, há um detalhe quando você quer modificar uma variável global dentro de uma função: você precisa declará-la explicitamente como global.
Declarando Variáveis Globais
Aqui está um exemplo simples para ilustrar como usar uma variável global dentro de uma função:
# Definir uma variável global
globvar = 0
# Função para modificar a variável global
def mudar_globvar_para_um():
global globvar # Declarar globvar como global
globvar = 1
# Função para imprimir a variável global
def exibir_globvar():
print(globvar) # Acessando globvar sem declaração
# Modificar e depois imprimir a variável global
mudar_globvar_para_um()
exibir_globvar() # Isso imprimirá 1
Na função mudar_globvar_para_um
, usamos a palavra-chave global
para dizer ao Python que estamos nos referindo à globvar
global, não a uma local. Sem essa declaração, o Python assumiria que globvar
é uma variável local, levando a um UnboundLocalError
.
Lendo vs. Modificando Variáveis Globais
É importante notar que você só precisa declarar uma variável como global se estiver planejando modificá-la. Se você está apenas lendo o valor de uma variável global dentro de uma função, você pode usá-la diretamente sem a palavra-chave global
. Foi o que aconteceu na função exibir_globvar
do exemplo anterior.
Compartilhando Variáveis Globais Entre Módulos
E se eu precisar acessar uma variável global que está em outro módulo? Um padrão comum para compartilhar variáveis globais entre módulos é criar um módulo de configuração, muitas vezes chamado de config
ou cfg
. Veja como você pode implementar isso:
# Arquivo: config.py
x = 0 # Valor padrão da configuração 'x'
# Arquivo: mod.py
import config
config.x = 1
# Arquivo: main.py
import config
import mod
print(config.x) # Isso imprimirá 1
Ao importar o módulo config
em todas as partes da sua aplicação, quaisquer alterações feitas nas variáveis do módulo são refletidas em todos os lugares, pois existe apenas uma instância de cada módulo.
Resumo
Para usar uma variável global dentro de uma função, declare-a como global se precisar modificá-la. Se você está apenas lendo seu valor, nenhuma declaração é necessária. Para compartilhar variáveis globais entre módulos, considere usar um módulo de configuração. Lembre-se, a palavra-chave global
é crucial para modificar variáveis globais dentro de funções.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários