Zmienne globalne Pythona to te, które nie są zdefiniowane wewnątrz żadnej funkcji i mają zasięg globalny, podczas gdy Python zmienne lokalne to te, które są zdefiniowane wewnątrz funkcji, a ich zakres jest ograniczony tylko do tej funkcji. Innymi słowy, możemy powiedzieć, że zmienne lokalne są dostępne tylko wewnątrz funkcji, w której zostały zainicjowane, podczas gdy zmienne globalne są dostępne w całym programie i wewnątrz każdej funkcji.
Zmienne lokalne Pythona
Zmienne lokalne w Pythonie to te, które są inicjowane wewnątrz funkcji i należą tylko do tej konkretnej funkcji. Nie można uzyskać do niego dostępu poza funkcją. Zobaczmy, jak utworzyć zmienną lokalną.
Tworzenie zmiennych lokalnych w Pythonie
Definiowanie i dostęp do zmiennych lokalnych
Python3
def> f():> > # local variable> > s> => 'I love Geeksforgeeks'> > print> (s)> # Driver code> f()> |
>
>Wyjście
I love Geeksforgeeks>
Czy zmienna lokalna może być używana poza funkcją?
Jeśli spróbujemy użyć tej zmiennej lokalnej poza funkcją, zobaczmy, co się stanie.
Opis przypadku Java
Python3
def> f():> > > # local variable> > s> => 'I love Geeksforgeeks'> > print> (> 'Inside Function:'> , s)> # Driver code> f()> print> (s)> |
>
>
Wyjście:
NameError : name 's' is not defined>
Zmienne globalne Pythona
Są to te, które są zdefiniowane poza jakąkolwiek funkcją i które są dostępne w całym programie, tj. wewnątrz i na zewnątrz każdej funkcji. Zobaczmy, jak utworzyć zmienną globalną w Pythonie.
Utwórz zmienną globalną w Pythonie
Definiowanie i uzyskiwanie dostępu do zmiennych globalnych Pythona.
Python3
# This function uses global variable s> def> f():> > print> (> 'Inside Function'> , s)> # Global scope> s> => 'I love Geeksforgeeks'> f()> print> (> 'Outside Function'> , s)> |
>
foreach maszynopis
>Wyjście
wyjaśnić niezależność danych
Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>
Zmienna s jest zdefiniowana jako zmienna globalna i jest używana zarówno wewnątrz funkcji, jak i poza nią.
Notatka: Ponieważ nie ma żadnych zmiennych lokalnych, zostanie użyta wartość z globalnych, ale upewnij się, że zmienna lokalna i globalna mają tę samą nazwę.
Dlaczego używamy zmiennych lokalnych i globalnych w Pythonie?
A co, jeśli istnieje zmienna Pythona o tej samej nazwie, zainicjowana zarówno wewnątrz funkcji, jak i globalnie? Teraz pojawia się pytanie, czy zmienna lokalna będzie miała jakiś wpływ na zmienną globalną lub odwrotnie i co się stanie, jeśli zmienimy wartość zmiennej wewnątrz funkcji f()? Czy wpłynie to również na światy? Testujemy to w następującym fragmencie kodu:
Przykład
Jeśli zmienna o tej samej nazwie jest zdefiniowana również w zasięgu funkcji, to wydrukuje tylko wartość podaną wewnątrz funkcji, a nie wartość globalną.
Python3
# This function has a variable with> # name same as s.> def> f():> > s> => 'Me too.'> > print> (s)> # Global scope> s> => 'I love Geeksforgeeks'> f()> print> (s)> |
>
>Wyjście
Me too. I love Geeksforgeeks>
A co jeśli spróbujemy zmienić wartość zmiennej globalnej wewnątrz funkcji? Zobaczmy to na poniższym przykładzie.
Python3
klasa skanera Java
# This function uses global variable s> def> f():> > s> +> => 'GFG'> > print> (> 'Inside Function'> , s)> # Global scope> s> => 'I love Geeksforgeeks'> f()> |
>
>
Wyjście:
UnboundLocalError : local variable 's' referenced before assignment>
Aby powyższy program działał, musimy w Pythonie użyć słowa kluczowego global. Zobaczmy, czym jest to globalne słowo kluczowe.
Globalne słowo kluczowe
Musimy jedynie skorzystać z globalne słowo kluczowe w funkcji, jeśli chcemy wykonać przypisania lub zmienić zmienną globalną. global nie jest potrzebny do drukowania i uzyskiwania dostępu. Python zakłada, że potrzebujemy zmiennej lokalnej ze względu na przypisanie do s wewnątrz f(), więc pierwsza instrukcja generuje komunikat o błędzie. Każda zmienna, która jest zmieniana lub tworzona wewnątrz funkcji, jest lokalna, jeśli nie została zadeklarowana jako zmienna globalna. Aby powiedzieć Pythonowi, że chcemy użyć zmiennej globalnej, musimy użyć słowa kluczowego światowy , jak widać na poniższym przykładzie:
Przykład 1: Używanie globalnego słowa kluczowego Pythona
Python3
# This function modifies the global variable 's'> def> f():> > global> s> > s> +> => ' GFG'> > print> (s)> > s> => 'Look for Geeksforgeeks Python Section'> > print> (s)> # Global Scope> s> => 'Python is great!'> f()> print> (s)> |
>
>Wyjście
Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>
Teraz nie ma już żadnych dwuznaczności.
Przykład 2: Używanie zmiennych globalnych i lokalnych w Pythonie
Python3
lista lateksowa
a> => 1> # Uses global because there is no local 'a'> def> f():> > print> (> 'Inside f() : '> , a)> # Variable 'a' is redefined as a local> def> g():> > a> => 2> > print> (> 'Inside g() : '> , a)> # Uses global keyword to modify global 'a'> def> h():> > global> a> > a> => 3> > print> (> 'Inside h() : '> , a)> # Global scope> print> (> 'global : '> , a)> f()> print> (> 'global : '> , a)> g()> print> (> 'global : '> , a)> h()> print> (> 'global : '> , a)> |
>
>Wyjście
global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>
Różnica b/w Zmienna lokalna vs. Zmienne globalne
Podstawa porównania | Zmienna globalna | Zmienna lokalna |
Definicja | zadeklarowane poza funkcjami | zadeklarowane w funkcjach |
Dożywotni | Są tworzone w momencie rozpoczęcia wykonywania programu i znikają po jego zakończeniu | Są tworzone, gdy funkcja rozpoczyna wykonywanie i znikają, gdy funkcja się kończy |
Udostępnianie danych | Oferuje udostępnianie danych | Nie oferuje udostępniania danych |
Zakres | Można uzyskać dostęp w całym kodzie | Można uzyskać dostęp tylko do wnętrza funkcji |
Potrzebne parametry | przekazywanie parametrów nie jest konieczne | konieczne jest przekazanie parametrów |
Składowanie | Stała lokalizacja wybrana przez kompilator | Trzymane są na stosie |
Wartość | Gdy wartość się zmieni, zostanie to odzwierciedlone w całym kodzie | raz zmieniona zmienna nie ma wpływu na inne funkcje programu |