Lokalne języki Pythona ()

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.

  1. Globalna tabela symboli
  2. 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.

Interesujące artykuły...