Python Academy · Oppitunti

Palautusarvot ja näkyvyysalue

Ymmärtäkää return-lauseet ja muuttujien näkyvyysalueet (paikallinen ja globaali).

Oppitunti 4/414 vaihetta

Palautusarvot ja näkyvyysalue on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Johdanto

return-lauseiden ja muuttujien näkyvyysalueen ymmärtäminen on olennaista ennakoitavien ja virheettömien Python-funktioiden kirjoittamisessa.

return-lause

return expr poistuu funktiosta ja palauttaa expr-arvon kutsujalle. Arvoton return palauttaa None.
def double(x):
    return x * 2
print(double(5))

Aikainen palautus

Useat return-lauseet ovat sallittuja — ensimmäinen suoritettu return poistuu funktiosta. Tämä on hyödyllistä ehtojen tarkistamiseen funktion alussa.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Paikallinen näkyvyysalue

Funktion sisällä luodut muuttujat ovat paikallisia — niitä ei ole olemassa funktion ulkopuolella.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Globaali näkyvyysalue

Moduulitasolla määritellyt muuttujat ovat globaaleja. Funktiot voivat lukea globaaleja muuttujia ilmoittamatta niitä erikseen.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

global-avainsana

global x funktion sisällä mahdollistaa globaalin muuttujan kirjoittamisen. Käyttäkää tätä säästeliäästi — se vaikeuttaa koodin toiminnan päättelyä.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

nonlocal-avainsana

nonlocal x sisäkkäisessä funktiossa mahdollistaa kirjoittamisen sulkeutuvan, mutta ei globaalin, näkyvyysalueen muuttujaan.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

LEGB-sääntö

Python ratkaisee nimet tässä järjestyksessä: Local → Enclosing → Global → Built-in. Tätä kutsutaan LEGB-säännöksi.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Useiden arvojen palauttaminen

def f(): return 1, 2, 3 palauttaa tuplen. a, b, c = f() purkaa sen.
def stats(lst):
    return min(lst), max(lst), sum(lst)/len(lst)
lo, hi, avg = stats([1,2,3,4,5])
print(lo, hi, avg)

Funktioiden palauttaminen (closure)

Funktio voi palauttaa toisen funktion. Sisempi funktio muistaa ulomman näkyvyysalueen — tätä kutsutaan closureksi.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None ja puuttuva return

Palauttakaa aina None eksplisiittisesti ilmaistessanne arvon puuttumista. Implisiittiseen None-arvoon luottaminen on sallittua, mutta eksplisiittinen ilmaisu on selkeämpi.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Pikatarkistus

Mikä näkyvyysalue tarkistetaan LEGB-säännön mukaan viimeisenä?

Kertaus

return poistuu funktiosta arvon kanssa. Paikalliset muuttujat eivät vuoda funktion ulkopuolelle. Käyttäkää global- tai nonlocal-avainsanaa kirjoittaaksenne ulompiin näkyvyysalueisiin. LEGB: Local, Enclosing, Global, Built-in.

Jatka eteenpäin

Hienoa työtä! Siirtykää seuraavaan oppituntiin jatkaaksenne edistymistä.
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Palautusarvot ja näkyvyysalue” ilmainen?

Kyllä – oppitunnin ”Palautusarvot ja näkyvyysalue” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Palautusarvot ja näkyvyysalue”?

Ymmärtäkää return-lauseet ja muuttujien näkyvyysalueet (paikallinen ja globaali). Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Palautusarvot ja näkyvyysalue”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Funktioiden määrittäminen ja kutsuminen
  2. Oletus- ja avargumentit
  3. args ja kwargs
  4. Palautusarvot ja näkyvyysalue
← Takaisin: Python Academy