Oh, cara, há algum código na tela e parece terrivelmente confuso.
Este é um exemplo de uma função complicada e realmente complicada que você nunca escreveria, mas será boa
para fins de exercício.
E estamos falando especificamente sobre isso aqui chamado de não local.
Na verdade, é uma nova palavra-chave no Python três.
E como você pode ver, meu Reppel nem percebe.
Portanto, nem mesmo é destacado em azul porque é um novo recurso.
Mas eu quero falar com você sobre isso e dizer o que ele faz.
A palavra-chave não local é usada para se referir a esta parte, este local pai.
É uma maneira de dizermos, ei, quero usar uma variável que não seja uma variável global, mas que esteja fora
do escopo da minha função.
Portanto, com base nessa definição, tente pausar o vídeo e ver o que essa função pode fazer. Vou
executá-la agora e, em seguida, percorrer o código se clicar em executar.
Isso é o que temos.
Então, vamos conversar sobre isso.
Temos uma função externa e então chamamos a função externa.
Portanto, o interpretador Python vai dizer, tudo bem, temos uma variável X que é local
para a função externa.
E aí dentro, vamos definir uma função interna, outra função.
E aqui, antes mesmo de chamar isso, saltamos para a linha nove e dizemos, certo, chame a função interna.
Voltamos e dizemos, ei, linha cinco, quero usar X não local.
Hmm.
O que isso significa?
Bem, eu quero usar essa variável X porque ela é não local.
Ou seja, não quero criar uma nova variável X.
Eu quero pular o escopo para meus pais, localizar meu pai local e pegar tudo o que você encontrar lá.
Contanto que não seja uma variável global, qualquer pai servirá.
Eu quero agarrar aquele não-local.
Portanto, agora este X está se referindo à função externa aqui.
Então, quando dizemos que X é igual a não local, estamos atribuindo esta nova string.
E substituindo este local para que quando imprimirmos interagir, obteremos não local, mas também quando imprimirmos
o X externo, modificamos este escopo externo com a palavra-chave não local.
Portanto, isso também se torna não local.
Se eu remover esta linha e comentarmos e eu clicar em executar.
Você vê a diferença agora que temos o não local interno, mas o local externo não foi modificado porque
esta é uma nova variável.
Novamente, eu argumento que isso realmente torna seu código mais complicado do que precisa ser.
Portanto, há casos especiais em que você pode querer usar isso, mas se você pode tentar tornar
seu código previsível, onde você pode evitar o uso de coisas como não local e global, lembre-se, eles existem por uma
razão porque são úteis em alguns situações.
Dito isso, lembre-se, torne seu código previsível, deixe seu código limpo, e vejo você no
próximo vídeo.