Zrozum zakres zmiennych globalnych w pythonie

Understand Global Variables Scope Python



W większości języków programowania można zdefiniować dwa typy zmiennych. Są to zmienne globalne i zmienne lokalne. Zmienne zdefiniowane poza funkcją nazywane są zmienną globalną. Ta zmienna jest dostępna i można ją zmieniać z dowolnego miejsca w skrypcie. Zmienna zadeklarowana wewnątrz funkcji nazywana jest zmienną lokalną. Ale jeśli ta sama nazwa zmiennej istnieje jako zmienne globalne i lokalne, to zmienna wewnątrz funkcji otrzyma priorytet, a wartość zmiennej globalnej zostanie zignorowana. Zakres zmiennej globalnej w skrypcie Pythona jest pokazany w tym samouczku przy użyciu różnych przykładów.

Przykład-1: Proste użycie zmiennej globalnej

Poniższy przykład pokazuje proste użycie zmiennej globalnej wewnątrz funkcji i poza nią. Tutaj zmienna globalna o nazwie tekst służy do przypisywania danych ciągu. Niestandardowa funkcja o nazwie printMessage() jest zdefiniowany do drukowania wartości zmiennej globalnej. Wartość tekst zmienna jest wypisywana wewnątrz funkcji i na zewnątrz funkcji po zmianie wartości.







#!/usr/bin/env python3

# Zdefiniuj zmienną globalną
tekst= 'Witamy w LinuxHint'

# Zdefiniuj funkcję
definitywnieprintMessage():

# Wydrukuj zmienną globalną z funkcji
wydrukować('Globalna zmienna wewnątrz funkcji: ',tekst)

# Wywołaj funkcję
printMessage()

# Zmień wartość zmiennej globalnej
tekst= „Naucz się programowania w Pythonie”

# Wydrukuj bieżącą wartość zmiennej globalnej
wydrukować('Globalna zmienna poza funkcją: ',tekst)

Wyjście:



Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu. Wydrukował wartość „ Witamy w LinuxHint’ która jest przypisywana do zmiennej przed wywołaniem funkcji. Następnie wypisał wartość, „Naucz się programowania w Pythonie” po zmianie wartości zmiennej.







Przykład-2: Użycie zmiennej globalnej i lokalnej o tej samej nazwie

Jeśli chcesz zadeklarować nazwę zmiennej wewnątrz funkcji, która jest już zadeklarowana jako zmienna globalna przed w pythonie i chcesz użyć zmiennej, potraktuje zmienną jako zmienną lokalną i wygeneruje błąd. Poniższy skrypt pokaże błąd. Tutaj, tekst zmienna jest zdefiniowana jako zmienna globalna i lokalna.

#!/usr/bin/env python3

# Zdefiniuj zmienną globalną
tekst= „Lubię Pythona”

# Zdefiniuj funkcję
definitywnieprintMessage():
wydrukować(tekst)

tekst= „Lubię PHP”

# Wywołaj funkcję
printMessage()

Wyjście:



Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu.

Aby uniknąć powyższej sytuacji i jeśli chcesz zadeklarować zmienną lokalną o tej samej nazwie co zmienna globalna, musisz najpierw przypisać zmienną lokalną wewnątrz funkcji. Poniższy skrypt pokazuje, że zmiany w zmiennej lokalnej nie powodują żadnych zmian w zmiennej globalnej. tekst zmienna jest tutaj wypisywana wewnątrz i na zewnątrz funkcji.

#!/usr/bin/env python3

# Zdefiniuj zmienną globalną
tekst= „Lubię Pythona”

# Zdefiniuj funkcję
definitywnieprintMessage():
# Zdefiniuj lokalną wartość
tekst= „Lubię PHP”
# Wydrukuj zmienną lokalną,tekst
wydrukować('Wartość 'text' wewnątrz funkcji: ',tekst)

# Wywołaj funkcję
printMessage()

# Wydrukuj zmienną globalną text
wydrukować('Wartość 'tekst' poza funkcją: ',tekst)

Wyjście:

Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład-3: Użycie zmiennej globalnej wewnątrz funkcji

Poprzedni przykład pokazuje, że zmienna globalna nie jest dostępna wewnątrz funkcji. Możesz użyć globalny słowo kluczowe, aby uzyskać dostęp do zmiennej globalnej z dowolnej funkcji. W poniższym skrypcie cal_percentage() funkcja jest zdefiniowana do obliczania procentu dowolnej liczby, w której używane są zarówno zmienne globalne, jak i lokalne. Tutaj, na jednego jest zmienną globalną, a perVal jest zmienną lokalną. światowy słowo kluczowe jest tutaj używane do identyfikacji zmiennej globalnej wewnątrz funkcji, a wartość zmiennej globalnej jest zmieniana wewnątrz funkcji.

#!/usr/bin/env python3

# Weź wartość całkowitą
na jednego= int(Wejście('Wprowadź liczbę: '))

# Zdefiniuj funkcję
definitywniecal_percentage():
# Rozpoznaj zmienną globalną za pomocą globalnego słowa kluczowego
światowyna jednego

# Weź wartość całkowitą jako procent
perVal= int(Wejście('Wprowadź wartość procentową: '))

# Oblicz wartość procentową
wynik= pływak((czy *perVal)/100)

# Wydrukuj sformatowany wynik
wydrukować('%d procent z %d = %f'%(perVal,na jednego,wynik))

# Zmień wartość zmiennej globalnej
na jednego= 500

# Wydrukuj wartość zmiennej globalnej przed wywołaniem funkcji
wydrukować(' Wartość num = %d'%na jednego)

# Wywołaj funkcję
cal_percentage()

# Wydrukuj wartość zmiennej globalnej po wywołaniu funkcji
wydrukować(' Wartość num = %d'%na jednego)

Wyjście:

Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj obliczane i drukowane jest 10% z 350.

Przykład-4: Użycie zmiennych globalnych z innego skryptu

Poniższy przykład pokazuje, jak zmienna globalna zadeklarowana w jednym skrypcie może być użyta w innym skrypcie. Załóżmy, że nazwa pliku to global6.py który użyje zmiennych globalnych zdefiniowanych w pliku o nazwie global5.py . Trzy zmienne globalne są zadeklarowane w global5.py . Musisz importować globalny5 użyć zmiennych w innym skrypcie. Scenariusz global6.py obliczy wynagrodzenie trzech rodzajów pracowników na podstawie wartości wejściowych i zmiennych globalnych.

#!/usr/bin/env python3
# to jest plik global5.py

# Podstawowa struktura wynagrodzeń firmy
Podstawowy= 5000
Medyczny= 500
Transport= 500 #!/usr/bin/env python3
# to jest plik global6.py

# Importuj zmienne globalne z global5.py
importglobalny5

# Weź nazwisko pracownika
Nazwa= Wejście('Wprowadź nazwisko pracownika:')
# Weź nazwę posta
Poczta= Wejście('Wprowadź post: ')

# Zainicjuj zmienną błędu
błąd= Fałszywe

# Sprawdź stanowisko i ustal wynagrodzenie podstawowe na podstawie stanowiska
Jeśli(Poczta.górny() == „CEO”):
podstawowy=globalny5.Podstawowy+(globalny5.Podstawowy*0,4)
Elifa(Poczta.górny() == 'MENEDŻER'):
podstawowy=globalny5.Podstawowy+(globalny5.Podstawowy*0,25)
Elifa(Poczta.górny() == 'KSIĘGOWA'):
podstawowy=globalny5.Podstawowy+(globalny5.Podstawowy*0,15)
w przeciwnym razie:
# Ustaw błąd na true, jeśli nie znaleziono wartości post
błąd= Prawdziwe

# Wydrukuj pensję, jeśli błąd jest fleszem
Jeśli (błąd== Fałszywe):
pensja=podstawowe + globalne5.Medyczny+ globalny5.Transport
wydrukować('Wynagrodzenie %s wynosi %d'%(Nazwa,pensja))
w przeciwnym razie:
wydrukować(„Nie znaleziono wpisu”)

Wyjście:

Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj skrypt jest uruchamiany dwa razy z ważnym postem i nieprawidłowym postem.

Wniosek:

Pojęcie zmiennej globalnej w Pythonie zostało wyjaśnione w tym samouczku z różnymi prostymi przykładami dla nowych użytkowników Pythona. Mam nadzieję, że po przeczytaniu tego samouczka czytelnicy uzyskają odpowiednią wiedzę na temat zmiennych globalnych, a także zmiennych lokalnych.

Obejrzyj film autora: tutaj