September 20, 2021 In Kurs Python'a dla początkujących
By lukasz September 20, 2021 In Kurs Python'a dla początkujących
Ostatnio nauczyliśmy się tworzyć funkcje, poznaliśmy ich typy i dowiedzieliśmy się jak przekazywać do niej argumenty, czyli całkiem dużo 🙂
Funkcje, to jednak bardziej rozbudowany temat. Musimy poznać jeszcze kolejny istotny element, który się z nimi wiąże.
Później możemy świętować zostanie mistrzami pisania funkcji 🙂
W programowaniu mamy ważną zasadę tzw. “Scope” czyli tak na prawdę zasięg, w którym istnieje nasza zmienna – o zmiennych mówiliśmy w poprzednich lekcjach, jeżeli nie pamiętasz to koniecznie tam wróć: Lekcja o zmiennych.
Wyróżniamy:
Co to oznacza?
To oznacza, że jak zadeklarujemy zmienną w funkcji, instrukcji warunkowej czy pętli, to tylko i wyłącznie tam będzie dostępna.
Jeżeli zadeklarujemy zmienną w scopie globalnym, to wszędzie będzie do niej dostęp.
Z zasięgiem jest jak z Vegas: “Co się stało w Vegas, zostaje w Vegas” tak i u nas: “co się zadeklarowało w scopie funkcji, zostaje w funkcji 😉

Deklarując zmienną globalną deklarujemy ją poza czymkolwiek co mogłoby ją ograniczać. Zwykle znajduje się ona wtedy na samej górze pliku.
# global variable
# available in the whole file
city = 'Warsaw'
def greeting():
print(f'Hello from {city}')
def warm_greeting():
print(f'Hi from {city}. How are you?')
greeting()
warm_greeting()
# result:
# Hello from Warsaw
# Hi from Warsaw. How are you?
Zmienna lokalna, nie ma nic wspólnego ze zmienną globalną, mimo że może się tak samo nazywać.
# global variable
# available in the whole file
city = 'Warsaw'
# function creates it's own local scope
def greeting():
# this is a local variable which is available here
# it's not related to the global 'city' variable above
city = 'London'
print(f'Hello from {city}')
# function creates it's own local scope
def warm_greeting():
# here we don't have a city variable
# so it's taken from the global scope
print(f'Hi from {city}. How are you?')
greeting()
warm_greeting()
# result:
# Hello from London
# Hi from Warsaw. How are you?
Nie mamy dostępu do zmiennych lokalnych poza scopem, w którym zostały zadeklarowane.
# function creates it's own local scope
def greeting():
# this is a local variable which is available here
city = 'London'
# outside a function we are in a global scope
# in a global scope there is no 'city' variable
print(city)
# this won't work and you will see ERROR
Ważna uwaga!
Dobrą praktyką programistyczną jest nie deklarować lub deklarować jak najmniej zmiennych w scopie globalnym, ponieważ:
Jak wszędzie, najważniejszy jest rozsądek, ale zapamiętaj, że jeżeli możesz to unikaj tworzenia zmiennych globalnych.
Wiesz już coraz więcej i właśnie udało Ci się poznać kolejny ważny koncept! Będziesz w stanie lepiej organizować swój kod i rozumieć co się w niej dzieje! Gratulacje! 🙂
Nie zapomnij polubić stronę na facebooku i zapisać się do newsletter’a aby dostać informację o kolejnych świetnych lekcjach!