‫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.