Função chamando Função - Tutorial de Python

Neste tutorial de Python, vamos mostrar mais uma técnica interessante e bastante importante: chamar uma função, dentro de outra função.


Função no Script: O que acontece ?

Até antes desta seção sobre funções, nossos scripts rodavam da seguinte maneira: o interpretador Python ia lendo e executando, da primeira para última instrução, linha por linha.

Agora, com funções dentro do script, coisas diferentes acontecem por 'trás' dos panos. Vamos voltar a ver um exemplo simples de código:

def mensagem():
    print("Tutorial Python Progressivo")

mensagem()

O que acontece agora, é o seguinte:
O interpretador continua lendo da primeira para última linha, porém, quando encontra uma função (def), ele não executa.

Ele percebe que é uma função, e aloca na memória do seu computador um espaço para ela, e toma 'ciência' que ela existe:
"Opa, esse script tem uma função...xô guardar o nome dela e seu código aqui nesse endereço do computador. Quando chamarem, já sei onde ela tá"

Em seguida, ele continua a interpretar o resto do script.
Quando chega na instrução mensagem(), ele executa normalmente.

No caso, vai lá no local onde armazenou a função, e agora sim executa o código da função.

No exemplo de nossa calculadora em Python usando funções, declaramos 4 funções: soma(), subtracao(), multiplicacao() e divisao().

Cada vez que o interpretador se deparava com a declaração de uma função, armazenava ela na memória, mas sem executar.

Somente depois de ler todas as declarações, é que começou a executar as instruções, que vieram depois das funções. Veja lá o artigo anterior.

É importante saber como o interpretador funciona, para ser um bom programador Python. Ok ?

Função chamando Função

Quando explicamos o que é uma função em Python, demos o exemplo da empresa, que cada setor e grupo de pessoas são uma função, que faz algo específico.



Vamos supor que chegou um candidato para trabalhar na empresa.
Na entrada, ele chega na secretaria da empresa (uma função), se identifica. Ela vai redirecionar a pessoa para a entrevista com o RH (outra função), aprovando o candidato, o mesmo vai ser encaminhado para algum programador fazer a entrevista sobre os conhecimentos técnicos dele, esse programador também é uma função específica.

Ou seja: funções 'conversam' entre si, uma chama a outra, elas podem e devem trabalhar juntas!

No exemplo de código a seguir, vamos declarar duas funções: mensagem() e python_progressivo(), onde ambas exibem mensagens na tela:

def mensagem():
    print("O melhor curso de todos é:")
    python_progressivo()
    print("Estude por lá!")

def python_progressivo():
    print("Curso Python Progressivo")

mensagem()

Vamos lá, ver passo a passo o que ocorre.
Inicialmente, o interpretador vai ler a função mensagem(), anota seu nome e guarda seu código num endereço de memória.

Depois faz o mesmo com a função python_progressivo().
Como são declarações de funções, não são executadas. Funções só são executadas quando são chamadas, ok?

E, por fim, ele vai executar uma instrução, a linha de comando:
mensagem(), responsável por invocar a função mensagem().

Agora o interpretador vai lá no código dessa função pra executar tudo que tem dentro. Primeiro, manda um print na tela "O melhor curso de todos é: "

Na instrução seguinte, ele chama a função python_progresso(). Agora o interpretador vai nos levar lá pro código dessa função e executar ela. No caso, exibe a mensagem "Curso Python Progressivo" e encerra essa função.

Quando encerra a execução da python_progressivo(), o interpretador volta pra onde tava, antes de chamar ela, no caso, para dentro da mensagem(), cuja próxima instrução é printar na tela "Estude por lá".

Agora a função mensagem() se encerra e volta lá pra baixo, onde ela foi chamada. Como não tem nada depois, o script Python se encerra.

Nenhum comentário:

Postar um comentário