Certo, vamos jogar um joguinho, você consegue adivinhar qual será o resultado deste programa?
Eu tenho aqui igual a um.
Em seguida, criamos uma função chamada confusão onde temos a igual a cinco e retornamos uma minha pergunta é,
quando imprimimos A e quando imprimimos confusão, o que você espera que aconteça aqui?
Pare um pouco para fazer uma pausa, se necessário, e vamos descobrir.
Uma em cinco.
É isso que você esperava?
Vamos linha por linha.
Primeiro, atribuímos o valor um à variável A, então criamos uma função chamada confusão e o interpretador Python dirá, tudo bem, função
confusão, eu sei o que é.
Vou colocar na memória.
Quando você precisar me usar, é só me avisar.
E então vai para a linha oito e a linha oito vai dizer, ei, imprimir um o que é ..
Bem, a única vez que vi A foi bem aqui, igual a um.
Então, indo para a memória, o que dizer é igual a um.
Mas então quando eu corro uma confusão como essa.
Vou dizer, ei, A vai ser igual a cinco e agora voltamos, que é cinco.
OK, e se eu mudar a ordem disso?
E se eu for assim?
O que vai acontecer?
Se eu clicar, corra.
É isso que você esperava?
Mais uma vez, temos um próximo, então definimos a função e depois imprimimos a confusão.
Agora, a confusão aqui vai atribuir um igual a cinco e depois retornar A, mas por que isso não mudou?
Por que A ainda é igual a um quando chegamos aqui?
E isso é por causa do escopo, certo?
O que o interpretador Python faz é quando executa a função de confusão, vai dizer, ei, A vai
ser igual a cinco, mas estou criando uma variável aqui chamada A em meu próprio universo.
Não sei nada sobre igual aqui.
Eu tenho meu próprio universo e depois de executarmos essa função, então, tudo bem.
Retornamos a função e ela desapareceu completamente.
Mas nunca deixamos o universo no âmbito global.
Portanto, há um conjunto de regras pelas quais o interpretador Python passa para verificar uma variável e as regras são
estas.
Primeiro, ele vai verificar com o local.
Portanto, comece com local e o que chamamos de escopo local.
Um escopo local é um escopo que faz parte dessa função local.
Portanto, A é um escopo local.
Vai verificar lá.
Ei, eu sei a variável?
Bem, sim.
Quando eu retorno A, tenho uma variável definida aqui, então ela começa aí.
Mas digamos que um não estivesse lá.
Digamos que eu remova e clique em executar aqui.
Eu recebo os dois uma vez, porque a segunda regra é se não há nada na variável local ou escopo
local, então número dois, há uma escola local de pais?
Em nosso caso, qual é o pai da disfunção?
Bem, é o escopo global, mas também podemos fazer outra função.
Digamos que pai e mãe são os pais da função de confusão.
E aqui, digamos que a é igual a dois 10.
Agora, aqui, vamos voltar.
Confusão apenas para que possamos usá-lo novamente e realmente executá-lo.
Então, vamos ligar para o pai.
E clique em correr.
Tudo bem, vamos examinar isso para não ficar muito confuso.
Temos sua função pai que é chamada.
Então, quando chamamos isso, atribuímos um igual a dez e também criamos uma nova função, confusão.
E então, finalmente, devolvemos a confusão e realmente o executamos.
Então, vamos retornar A e imprimir aqui qualquer que seja o valor de A, que é 10.
E por que isto?
Bem, porque primeiro começamos com o escopo local.
Ei, essa confusão sabe o que é A?
Não, eu não o tenho em meu escopo local, OK, meu escopo local pai o tem?
Então, isso vai subir um nível e dizer, ei, os pais funcionam hoje em dia?
Sim, tenho cerca de 10.
Então, vai imprimir que a terceira regra ou a terceira ordem é global.
E global é o que chamamos de indentação de nada, é esse arquivo, certo, o que quer que o arquivo tenha que
é global no nosso caso, se A igual a dez não existe aqui, não existe local, não existe local
pai.
E eu clico em correr.
Ele verifica o escopo global.
E, finalmente, há uma outra regra, e esta é a número quatro, e é complicada,
e é o que chamamos de construída em Python.
Ou funções Python integradas.
Portanto, o Python também vem com funções predefinidas, algumas das quais falamos antes.
Alguns, digamos, basta dar cinco.
Vai verificar ou na verdade não vamos dar nada, vamos apenas fazer um pouco aqui.
Quando eu executar isso.
Recebo algumas funções embutidas.
Agora, como ele sabia o que era isso, qual era essa variável no final do dia?
Bem, é porque dizia, ei, eu tenho algum dentro deste universo?
Não, eu não.
OK, eu tenho algum em meu escopo pai?
Não, eu não.
OK, eu tenho uma soma global?
Não, não há nada aqui.
E a última coisa que ele vai verificar é, ei, se algum tipo de função Python embutida.
Sim.
Python na verdade nos dá alguns para que você possa usá-los para que não sejam arejados.
E essas são as regras de escopo que o interpretador Python cai muito, muito legal.
Ainda há mais algumas coisas que precisamos aprender.
Então, vejo vocês no próximo vídeo.