logo

Zmienne globalne i lokalne w Pythonie

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