21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

66 Escopo de nomes

Escopo de nomes

O escopo de nomes em Python é mantido através de Namespaces, que são

dicionários que relacionam os nomes dos objetos (referências) e os objetos em

si.

Normalmente, os nomes estão definidos em dois dicionários, que podem ser

consultados através das funções locals() e globals(). Estes dicionários são

atualizados dinamicamente em tempo de execução 17 .

Módulo

Var_1

Var_2

Var_3

Função

Var_3

Var_4

Um namespace é um escopo de

definição de estruturas.

Estas são variáveis globais.

Var_3 foi ofuscada, pois foi

(re)definida no escopo local.

Estas são variáveis locais.

Variáveis globais podem ser ofuscadas por variáveis locais (pois o escopo

local é consultado antes do escopo global). Para evitar isso, é preciso declarar

a variável como global no escopo local.

Exemplo:

17 Embora os dicionários retornados por locals() e globals() possam ser alterados

diretamente, isso deve ser evitado, pois pode ter efeitos indesejáveis.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!