Metoda locals () aktualizuje i zwraca słownik bieżącej lokalnej tablicy symboli.
Tablica symboli to struktura danych obsługiwana przez kompilator, która zawiera wszystkie niezbędne informacje o programie.
Należą do nich nazwy zmiennych, metody, klasy itp.
Istnieją głównie dwa rodzaje tablic symboli.
- Globalna tabela symboli
- Lokalna tabela symboli
Globalne tabeli symbol przechowuje wszystkie informacje związane z globalnym zakresu programu, i jest dostępny w Pythonie przy użyciu globalnych metoda ().
Zakres globalny zawiera wszystkie funkcje, zmienne, które nie są powiązane z żadną klasą ani funkcją.
Podobnie, lokalna tabela symboli przechowuje wszystkie informacje związane z lokalnym zakresem programu i jest dostępna w Pythonie przy użyciu locals()
metody.
Zakres lokalny może znajdować się w funkcji, w klasie itp.
Zalecana lektura: Przestrzeń nazw i zakres w Pythonie
Składnia locals ()
Składnia locals()
metody to:
miejscowi ()
locals () Parametry
locals()
metoda nie przyjmuje żadnych parametrów.
Wartość zwracana z lokalnych ()
locals()
metoda aktualizuje i zwraca słownik powiązany z bieżącą lokalną tablicą symboli.
Przykład 1: Jak locals () działa w Pythonie?
locals()
Wynik
('In': ('', 'locals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' locals () ',' _ih ': (' ', 'locals ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Uwaga: globals()
a locals()
tablica symboli dla globalnego środowiska jest taka sama.
Przykład 2: Jak locals () działa w zakresie lokalnym?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Wynik
localsNotPresent: () localsPresent: ('present': True)
Przykład 3: Aktualizowanie wartości słownika locals ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Wynik
Prawda, prawda
W przeciwieństwie do globals()
słownika, który odzwierciedla zmianę w rzeczywistej tabeli globalnej, locals()
słownik może nie zmieniać informacji w tabeli lokalnych.