Bem vindo de volta.
Vamos tentar responder a algumas perguntas que você possa ter, por exemplo, e os parâmetros?
Se eu fizer parâmetro, digamos estar aqui, o que é esse parâmetro quando eu uso B assim?
Então, digamos imprimir.
B e aqui, vou criar confusão com, digamos, o número trezentos se eu executar isso.
Isso funciona.
E isso porque ser o parâmetro faz parte do escopo local, isso é parte disso.
Portanto, os parâmetros são considerados variáveis locais.
Podemos usá-lo dentro da função, mas podemos usá-lo fora dessas funções.
Tecnicamente, quando definimos a função, informamos ao interpretador, ei, B vai ser uma variável
local.
OK, e quanto a isso?
E se tivermos isso, hein?
Mas quero ter certeza de que dentro da minha função estou realmente me referindo ao A
global. Existe uma maneira de usarmos esse valor sem criar uma nova variável?
Bem, vamos usar um exemplo melhor para isso.
Digamos que eu queira criar um contador.
Portanto, teremos total igual a zero.
E então aqui.
Eu vou dizer definir contagem.
E essa função vai dizer total.
Mais é igual a um.
Então, vamos adicionar cada vez que adicionarmos a contagem, ela vai incrementar zero por um e então um por um, assim
por diante e assim por diante.
Então, vamos retornar o total no final disso.
OK, então se eu correr aqui, imprima.
Contar.
Vamos ver o que acontece.
Eu vou bater em correr.
E eu obtenho outra variável local total referenciada antes da atribuição, e isso porque, bem, Count não conhece
o total.
Você está tentando usar o total, mas não atribuímos nada ainda.
Mas queremos que o total do mundo exterior seja executado, porque se eu apenas fizer isso, o total é igual a zero aqui e
eu faço a contagem.
Isso é ótimo, eu recebo um, mas e se eu quisesse executar a contagem várias vezes?
E se eu quisesse fazer a contagem?
Digamos três vezes para que a contagem total seja três.
Então, vamos imprimir o último aqui.
E eu clico em correr.
Ainda recebo um porque sempre que executamos a função, zeramos o total.
Isso não é muito útil, não é?
Então, uma maneira de corrigir isso é usando o que chamamos de palavra-chave global em Python e global diz usar o total global
se ele existir aqui, de modo que, em vez de ter que criar uma nova variável, eu possa
usar a variável global total.
Veja isso.
Bem, recebo uma sintaxe inválida, e isso é porque primeiro temos que dizer que o total global será
usado aqui e então podemos dizer total mais igual a um se eu executar isso.
Olhando para isso, temos um contador adequado, então global é uma forma de acessarmos essa variável global.
No entanto, eu argumento que esta não é uma boa maneira de fazer as coisas porque pode ficar muito confuso
quando você começa a adicionar Global's e todos esses diferentes universos estão acessando as variáveis uns dos outros, uma
maneira melhor de fazer isso é algo chamado injeção de dependência, e esta é uma versão simplificada dele.
Mas a ideia é que em vez de acessar variáveis fora da função como essa, o que pode ficar muito, muito
complicado conforme os arquivos ficam cada vez maiores, é o que fazer.
Em vez disso.
Total.
Assim, criamos um parâmetro e depois passamos esse parâmetro.
Ou argumento aqui.
Mas, como você pode ver, ainda é um porque, quando imprimimos o terceiro total, bem, isso nunca
muda.
Este é um zero global.
Em vez disso, podemos fazer algo assim, podemos dizer contagem total, da qual vamos contar novamente.
E então conte novamente.
Se eu executar isso.
Eu tenho três e sei o que você está pensando, isso é completamente insano, parece confuso.
Veja todos esses colchetes.
Mas deixe-me mostrar o que realmente fizemos.
Somos capazes de separar a dependência ou o efeito que isso não pode funcionar teve no escopo global externo e, em vez
disso, focar apenas em sua saúde.
Tudo o que precisávamos fazer era dizer, ei, quero que você dê uma contagem com total de zero.
E depois disso, isso vai avaliar dois um.
E então contamos que um total de um mais um vai ser igual a dois e então contamos dois mais um vai
ser igual a três.
Dessa forma, ainda podemos fazer nossa contagem sem ter que usar essa palavra-chave global, que eu diria que
é melhor.
Lembre-se, se esta é a primeira vez que vê isso, pode ficar um pouco complicado.
Mas pelo menos assim, você sabe que existem diferentes maneiras de fazer as coisas.
Outra palavra que quero mostrar a você é algo chamado não local.
Mas para esse, vamos dar um tempo e até o próximo vídeo.