Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Variáveis ​​globais, locais e não locais do Python

Variáveis ​​globais, locais e não locais do Python


Neste tutorial, você aprenderá sobre variáveis ​​globais do Python, variáveis ​​locais, variáveis ​​não locais e onde usá-las.

Vídeo:variáveis ​​locais e globais do Python

Variáveis ​​globais


Em Python, uma variável declarada fora da função ou no escopo global é conhecida como variável global. Isso significa que uma variável global pode ser acessada dentro ou fora da função.

Vamos ver um exemplo de como uma variável global é criada em Python.

Exemplo 1:criar uma variável global

x = "global"

def foo():
    print("x inside:", x)


foo()
print("x outside:", x)

Saída
x inside: global
x outside: global

No código acima, criamos x como uma variável global e definiu um foo() para imprimir a variável global x . Por fim, chamamos o foo() que imprimirá o valor de x .

E se você quiser alterar o valor de x dentro de uma função?

x = "global"

def foo():
    x = x * 2
    print(x)

foo()

Saída
UnboundLocalError: local variable 'x' referenced before assignment

A saída mostra um erro porque o Python trata x como uma variável local e x também não está definido dentro de foo() .

Para fazer isso funcionar, usamos o global palavra-chave. Visite Python Global Keyword para saber mais.

Variáveis ​​locais


Uma variável declarada dentro do corpo da função ou no escopo local é conhecida como variável local.

Exemplo 2:acessando variável local fora do escopo

def foo():
    y = "local"


foo()
print(y)

Saída
NameError: name 'y' is not defined

A saída mostra um erro porque estamos tentando acessar uma variável local y em um escopo global enquanto a variável local só funciona dentro de foo() ou âmbito local.


Vamos ver um exemplo de como uma variável local é criada em Python.

Exemplo 3:criar uma variável local


Normalmente, declaramos uma variável dentro da função para criar uma variável local.
def foo():
    y = "local"
    print(y)

foo()

Saída
local

Vamos dar uma olhada no problema anterior onde x era uma variável global e queríamos modificar x dentro de foo() .

Variáveis ​​globais e locais




Aqui, mostraremos como usar variáveis ​​globais e variáveis ​​locais no mesmo código.

Exemplo 4:usando variáveis ​​globais e locais no mesmo código

x = "global "

def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)

foo()

Saída
global global 
local

No código acima, declaramos x como global e y como uma variável local no foo() . Em seguida, usamos o operador de multiplicação * para modificar a variável global x e imprimimos ambos x e s .

Depois de chamar o foo() , o valor de x torna-se global global porque usamos o x * 2 para imprimir duas vezes global . Depois disso, imprimimos o valor da variável local y ou seja, local .

Exemplo 5:variável global e variável local com o mesmo nome

x = 5

def foo():
    x = 10
    print("local x:", x)


foo()
print("global x:", x)

Saída
local x: 10
global x: 5

No código acima, usamos o mesmo nome x para variável global e variável local. Obtemos um resultado diferente quando imprimimos a mesma variável porque a variável é declarada em ambos os escopos, ou seja, o escopo local dentro de foo() e escopo global fora de foo() .

Quando imprimimos a variável dentro de foo() ele gera local x: 10 . Isso é chamado de escopo local da variável.

Da mesma forma, quando imprimimos a variável fora do foo() , ele gera global x:5 . Isso é chamado de escopo global da variável.

Variáveis ​​não locais


Variáveis ​​não locais são usadas em funções aninhadas cujo escopo local não está definido. Isso significa que a variável não pode estar no escopo local nem no global.

Vamos ver um exemplo de como uma variável não local é usada em Python.

Usamos nonlocal palavras-chave para criar variáveis ​​não locais.

Exemplo 6:crie uma variável não local

def outer():
    x = "local"

    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)

    inner()
    print("outer:", x)


outer()

Saída
inner: nonlocal
outer: nonlocal

No código acima, há um inner() aninhado função. Usamos nonlocal palavras-chave para criar uma variável não local. O inner() função é definida no escopo de outra função outer() .

Observação :Se alterarmos o valor de uma variável não local, as alterações aparecem na variável local.

python

  1. Variáveis ​​C, Constantes e Literais
  2. Palavras-chave e identificadores do Python
  3. Declaração Python, Recuo e Comentários
  4. Variáveis, constantes e literais do Python
  5. Conversão de tipo Python e conversão de tipo
  6. Entrada, Saída e Importação do Python
  7. Palavra-chave global do Python
  8. Números Python, Conversão de Tipos e Matemática
  9. Gerenciamento de diretórios e arquivos Python
  10. Erros do Python e exceções incorporadas