O método locals () atualiza e retorna um dicionário da tabela de símbolos local atual.
Uma tabela de símbolos é uma estrutura de dados mantida por um compilador que contém todas as informações necessárias sobre o programa.
Isso inclui nomes de variáveis, métodos, classes, etc.
Existem basicamente dois tipos de tabelas de símbolos.
- Tabela de símbolos globais
- Tabela de símbolos locais
Uma tabela de símbolos Global armazena todas as informações relacionadas ao escopo global do programa e é acessada em Python usando o método globals ().
O escopo global contém todas as funções, variáveis que não estão associadas a nenhuma classe ou função.
Da mesma forma, a tabela de símbolos local armazena todas as informações relacionadas ao escopo local do programa e é acessada em Python usando o locals()
método.
O escopo local pode estar dentro de uma função, dentro de uma classe, etc.
Leitura recomendada: namespace e escopo em Python
Sintaxe de locais ()
A sintaxe do locals()
método é:
locais ()
locals () Parâmetros
locals()
método não leva nenhum parâmetro.
Valor de retorno de locais ()
locals()
o método atualiza e retorna o dicionário associado à tabela de símbolos local atual.
Exemplo 1: Como locals () funciona em Python?
locals()
Resultado
('In': ('', 'locals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' locals () ',' _ih ': (' ', 'locals ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'sair':)
Nota: globals()
e a locals()
tabela de símbolos para o ambiente global é a mesma.
Exemplo 2: Como locals () funciona dentro de um escopo local?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Resultado
localsNotPresent: () localsPresent: ('present': True)
Exemplo 3: Atualizando valores de dicionário locals ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Resultado
Verdade verdade
Ao contrário do globals()
dicionário que reflete a mudança na tabela global real, o locals()
dicionário não pode alterar as informações dentro da tabela de locais.