Enviar um café pro programador

Variável Local em Python - Curso Online Grátis

Seguindo nossos tutoriais sobre Funções em Python, vamos falar novamente em variáveis. No caso, variáveis locais, que possuem um comportamento diferente e bem interessante.

Como Trabalhar sendo Programador Python Profissional



Variável em Funções

Em praticamente todos os scripts que fizemos, usamos variáveis. Seja pra trabalhar com números inteiros, quebrados, strings etc, mas sempre usamos.

Usávamos em uma linha de código, depois alterávamos o valor em outra linha e por aí ia, sem mistério.

Mas quando começamos a trabalhar com funções, algo de diferente acontece.
Vamos ver um exemplo.

Vamos armazenar um valor na variável var dentro da função teste().
Colocamos o número inteiro 2112 dentro dessa variável e damos um print nesse valor, ainda dentro da função.

Fora da função, vamos simplesmente dar um print nessa variável, veja o código:

def teste():
    print("Estamos dentro da função!")
    var=2112
    print("Valor de var:",var)

teste()
print("Agora estamos fora da função!")
print("Valor de var:",var)


Agora veja o resultado:

Variáveis locais em funções
Dentro da função...tudo ok! Definimos a variável, atribuímos um valor a ela, imprimimos e tudo certo.

Fora da função, não! Deu ruim!!! E agora?

Variável Local em Python

A explicação é muito simples: as variáveis dentro de uma função, não são visíveis fora da função.


Se você criou e usou uma variável dentro de qualquer função, ela só existe naquele escopo, ou seja, apenas ali dentro da função.

Quem está de 'fora', não sabe que ela existe, não sabe o que tem dentro da função.

Vamos fazer mais um teste, com 3 funções. Uma função chama a outra. E em cada função vamos usar uma variável de mesmo nome, a banda, veja:

def teste():
    banda="Rush"
    print("A melhor banda do mundo é ", banda)
    teste2()

def teste2():
    banda="Beatles"
    print("A melhor banda do mundo é ", banda)
    teste3()

def teste3():
    banda="Iron Maiden"
    print("A melhor banda do mundo é ", banda)

teste()


Ou seja, cada função é um 'universo'. Outras funções ou outro escopo, não sabem que se passam lá dentro, nestes casos.

Existem, porém, uma maneira de funções se comunicarem com outras.
Mas isso é assunto para o próximo episódio (sempre quis dizer isso).

Próximo tutorial: Parâmetro e Argumento em Funções Python

Um comentário:

  1. Toopzera!
    Tinha estudado esse assunto com o Prof. Gustavo Guanabara, que por sinal é um excelente professor, mas justamente esse não entendi, e aqui no PP o assunto fluiu como água.
    Obrigado mesmo.

    PS. Comprei o pacote completo de apostilas mas, sempre gosto de estudar pelo site pela interatividade. Estudo pela apostila quando estou sem net.

    ResponderExcluir