Funksjoner som førsteklasses objekter
Send og returner funksjoner
Funksjoner som førsteklasses objekter er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.
Funksjoner er objekter
I Python er funksjoner førsteklasses objekter. De kan tilordnes variabler, lagres i datastrukturer, sendes som argumenter og returneres fra andre funksjoner – akkurat som tall eller strenger.
def greet():
return 'hi'
print(type(greet))
print(greet())Tilordne funksjoner til variabler
Et funksjonsnavn er bare en referanse. Tilordne det til et annet navn og kall funksjonen via dette navnet – uten parenteser når De refererer til selve funksjonen.
def shout(text):
return text.upper()
yell = shout
print(yell('hello'))Funksjoner i datastrukturer
De kan lagre funksjoner i lister eller dict-er og deretter slå dem opp og kalle dem dynamisk.
def add(a, b):
return a + b
def sub(a, b):
return a - b
ops = {'+': add, '-': sub}
print(ops['+'](10, 4))
print(ops['-'](10, 4))Sende funksjoner som argumenter
En funksjon som tar en annen funksjon som parameter, kalles en høyereordensfunksjon. Funksjonen som sendes inn, er argumentet.
def apply(func, value):
return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))map bruker førsteklasses funksjoner
Innebygde funksjoner som map bygger på at funksjoner sendes rundt. Her brukes en funksjon på hvert element.
def square(n):
return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)filter tar et predikat
filter beholder elementene som funksjonen som sendes inn, returnerer True for. Funksjonen avgjør hva som blir igjen.
def is_even(n):
return n % 2 == 0
print(list(filter(is_even, range(10))))Returnere en funksjon
En funksjon kan returnere en annen funksjon. Den returnerte funksjonen kan deretter kalles separat.
def get_greeter():
def greeter(name):
return 'Hello ' + name
return greeter
f = get_greeter()
print(f('Ada'))Funksjoner som sorteringsnøkler
sorted tar imot en key-funksjon som tilordner hvert element en verdi som brukes til sortering.
words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)lambda som hurtige funksjoner
En lambda er en liten, navnløs funksjon. Den egner seg perfekt til engangsbruk som argument.
nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))Funksjoner har attributter
Ettersom funksjoner er objekter, har de attributter som __name__ og en docstring i __doc__.
def hello():
'Says hello.'
return 'hi'
print(hello.__name__)
print(hello.__doc__)Bygge en dispatch-tabell
Ved å kombinere disse ideene kan De bygge en ryddig dispatch-tabell som velger en funksjon etter navn – uten lange if/elif-kjeder.
def start():
return 'starting'
def stop():
return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())Kontrollspørsmål
Hva betyr det at funksjoner er «førsteklasses» i Python?
Oppsummering: førsteklasses funksjoner
De har lært at funksjoner i Python:
- er objekter som De kan tilordne, lagre, sende videre og returnere.
- kan brukes av høyereordensfunksjoner som tar imot eller returnerer andre funksjoner (
map,filterogkeyforsorted). - kan opprettes som raske, navnløse funksjoner med
lambda. - gjør det mulig å lage ryddige dispatch-tabeller i stedet for lange betingelser.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Funksjoner som førsteklasses objekter» gratis?
Ja – hele teksten i «Funksjoner som førsteklasses objekter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Funksjoner som førsteklasses objekter»?
Send og returner funksjoner Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Funksjoner som førsteklasses objekter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Funksjoner som førsteklasses objekter
- Closures og frie variabler
- nonlocal og foranderlig tilstand
- Partielle funksjoner