English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O método locals() atualiza e retorna o dicionário da tabela de símbolos local atual.
A tabela de símbolos é uma estrutura de dados mantida pelo compilador que contém todas as informações necessárias do programa.
Essas incluem nomes de variáveis, métodos, classes, etc.
Existem duas principais tabelas de símbolos.
Tabela de símbolos global
Tabela de símbolos local
UmGlobal A tabela de símbolos armazena todas as informações relacionadas ao escopo global do programa e é acessada usando o Python paraglobals()Métodos.
O escopo global inclui todas as funções, variáveis que não estão associadas a nenhum classe ou função.
Da mesma forma,Local A tabela de símbolos armazena todas as informações relacionadas ao escopo local do programa e é acessada usando o método locals() no Python.
O escopo local pode estar dentro de uma função, dentro de uma classe, etc.
Recomendação de leitura: O espaço de nomes e o escopo do Python
A sintaxe do método locals() é:
locals()
O método locals() não recebe nenhum parâmetro.
O método locals() atualiza e retorna o dicionário associado à tabela de símbolos local atual.
locals()
Quando o programa é executado, a saída é:
{'In': ['', 'locals()'], 'Out': {}, '_': '', '__': '', '___': '', '__builtin__':, '__builtins__':, '__name__': '__main__', _dh: ['',/home/repl], _i: '', _i1': 'locals()', _ih: ['', 'locals()'], _ii: '', _iii: '', _oh: {}, _sh:, 'exit':, 'get_ipython':>, 'quit':}
Atenção:Os símbolos globals() e locals() do ambiente global são os mesmos.
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Quando o programa é executado, a saída é:
localsNotPresent: {} localsPresent: {'present': True}
def localsPresent(): present = True print(present) locals()['present'] = False; print(present) localsPresent()
Quando o programa é executado, a saída é:
True True
Diferente de globals() dicionário (que reflete as alterações na tabela global real), o dicionário locals() pode não alterar as informações na tabela locals().