Palavra-chave global Python (com exemplos)

Neste artigo, você aprenderá sobre a palavra-chave global, a variável global e quando usar palavras-chave globais.

Antes de ler este artigo, certifique-se de ter algumas noções básicas de variáveis ​​globais, locais e não locais do Python.

Qual é a palavra-chave global

Em Python, globalpalavra-chave permite que você modifique a variável fora do escopo atual. É 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 globalpalavras-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 tem que usar globalpalavras-chave.
  • Usamos globalpalavra-chave para ler e escrever uma variável global dentro de uma função.
  • O uso de globalpalavras-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: variável local 'c' referenciada antes da atribuição

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 a globalpalavra - chave.

Exemplo 3: Mudando 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á:

 Dentro de add (): 2 In main: 2

No programa acima, definimos c como uma palavra-chave global dentro da add()função.

Então, incrementamos a variável c por 1, ie c = c + 2. Depois disso, chamamos a 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.pypara conter variáveis ​​globais e compartilhar informações entre módulos Python dentro do mesmo programa.

Aqui está como podemos compartilhar variáveis ​​globais entre os módulos Python.

Exemplo 4: compartilhar uma variável global entre os módulos Python

Crie um config.pyarquivo para armazenar variáveis ​​globais

 a = 0 b = "empty"

Crie um update.pyarquivo para alterar as variáveis ​​globais

 import config config.a = 10 config.b = "alphabet"

Crie um main.pyarquivo para testar as mudanças no valor

 import config import update print(config.a) print(config.b)

Quando executamos o main.pyarquivo, a saída será

 10 alfabeto

No exemplo acima, criamos três arquivos: config.py, update.py, e main.py.

O módulo config.pyarmazena variáveis ​​globais de a e b. No update.pyarquivo, importamos o config.pymódulo e modificamos os valores de a e b. Da mesma forma, no main.pyarquivo, importamos ambos config.pye o update.pymó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 em função aninhada.

Exemplo 5: usando uma variável global em 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)

O resultado é:

 Antes da barra de chamada: 20 Barra de chamada agora Após barra de chamada: 20 x no principal: 25

No programa acima, declaramos uma variável global dentro da função aninhada bar(). Dentro da foo()função, x não tem efeito sobre a palavra-chave global.

Antes e depois da chamada bar(), a variável x assume o valor da variável local ie x = 20. Fora da foo()função, a variável x terá o valor definido na bar()função ie x = 25. Isso ocorre porque usamos a globalpalavra-chave em x para criar uma variável global dentro da bar()função (escopo local).

Se fizermos alguma mudança dentro da bar()função, as alterações aparecem fora do âmbito local, ie foo().

Artigos interessantes...