Python Academy · Lektion

Returværdier og scope

Forstå return-sætninger og variablers scope (lokalt kontra globalt).

Lektion 4 af 414 trin

Returværdier og scope er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.

Introduktion

Det er grundlæggende at forstå return-sætninger og variablers synlighedsområde for at skrive forudsigelige Python-funktioner uden fejl.

return-sætningen

return expr afslutter funktionen og sender expr tilbage til den kaldende kode. return uden en værdi sender None.
def double(x):
    return x * 2
print(double(5))

Tidlig returnering

Flere return-sætninger er helt i orden — den første, der udføres, afslutter funktionen. Det er nyttigt til tidlige kontrolbetingelser.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Lokalt synlighedsområde

Variabler, der oprettes inde i en funktion, er lokale — de findes ikke uden for funktionen.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Globalt synlighedsområde

Variabler, der defineres på modulniveau, er globale. Funktioner kan LÆSE globale variabler uden at erklære dem.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

global-nøgleordet

global x inde i en funktion giver dig mulighed for at SKRIVE til en global variabel. Brug det sparsomt — det gør koden svær at gennemskue.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

nonlocal-nøgleordet

nonlocal x i en indlejret funktion lader dig skrive til en variabel i et omsluttende, men ikke globalt, synlighedsområde.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

LEGB-reglen

Python slår navne op i denne rækkefølge: Lokalt → Omsluttende → Globalt → Indbygget. Det er LEGB-reglen.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Returnering af flere værdier

def f(): return 1, 2, 3 returnerer en tupel. a, b, c = f() pakker den ud.
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)

Returnering af funktioner (closures)

En funktion kan returnere en anden funktion. Den indre funktion husker det ydre synlighedsområde — det er en closure.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None kontra manglende returnering

Returnér altid None eksplicit, når du signalerer fravær. Det er gyldigt at stole på implicit None, men en eksplicit værdi er tydeligere.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Hurtigt tjek

Hvilket synlighedsområde kontrolleres sidst i LEGB-reglen?

Opsummering

return afslutter en funktion med en værdi. Lokale variabler slipper ikke ud. Brug global/nonlocal til at skrive til ydre synlighedsområder. LEGB: Lokalt, omsluttende, globalt, indbygget.

Fortsæt

Godt arbejde! Gå videre til næste lektion for at fortsætte dine fremskridt.
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
76
Lektioner
320

Ofte stillede spørgsmål

Er lektionen “Returværdier og scope” gratis?

Ja — hele teksten til “Returværdier og scope” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Returværdier og scope”?

Forstå return-sætninger og variablers scope (lokalt kontra globalt). Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Python Academy?

Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Returværdier og scope”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Python Academy-lektion?

Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition og kald af funktioner
  2. Standard- og nøgleordsargumenter
  3. args og kwargs
  4. Returværdier og scope
← Tilbage til Python Academy