Som programmør vil du ofte opleve, at du udfører en handling eller opgave gentagne gange. Dette kan være kedeligt og tidskrævende, især når man arbejder med en stor eller kompleks kodebase. At automatisere dem med funktioner er en mere effektiv tilgang til at udføre sådanne opgaver. Funktioner giver dig mulighed for at skrive kodelogikken én gang og bruge den hvor som helst i dit program.
Hvad er en Python-funktion?
I Python er en funktion en kodeblok, der bruges til at udføre en bestemt opgave. Du behøver kun at skrive en funktion én gang, men du kan bruge den flere gange i din kode. En funktion kan tage argumenter ind som input og returnere outputværdier. Dette simple program viser en funktion, der beregner summen af tre tal:
# Python-funktion til at beregne summen af tre tal
defberegne_sum(a, b, c):
Vend tilbage a+b+c
print (beregn_sum(1,2,3)) # returnerer 6
print (beregn_sum(1000, 300,44)) # returnerer 1344
print (beregn_sum(12, 4,78)) # returnerer 94
I programmet ovenfor returnerer funktionen summen af tre argumenter. Når funktionen kaldes flere gange, returnerer den et forskelligt output for hver sag. En nyttig applikation til denne funktion vil være en lommeregner-app.
Definering af en funktion i Python
Python har mange indbyggede funktioner tilgængelig for udviklere at bruge. Disse indbyggede funktioner er dog ikke altid nok til at opfylde kravene i de fleste projekter. For at imødekomme brugerdefinerede krav skal du definere dine brugerdefinerede funktioner. At definere brugerdefinerede funktioner er almindelig praksis i programmering.
I Python kan du definere en brugerdefineret funktion ved at bruge def nøgleord efterfulgt af navnet på din funktion med parentes foran. Her er et eksempel:
deffunktionsnavn()
Du bør være opmærksom på disse regler, når du tildeler et funktionsnavn i Python:
- Funktionsnavne skal være med små bogstaver.
- Funktionsnavne skal være beskrivende.
- Brug understregninger til at adskille ord i et funktionsnavn.
Efter at have defineret funktionen, skal du skrive logikken for at udføre din ønskede opgave. For eksempel beregner denne funktion arealet af en trekant:
# Python-funktion til at beregne arealet af en trekant
defberegn_trekant_areal(base, højde):
areal = (grundlag * højde)/2
Vend tilbage areal
print (beregn_trekant_areal(12, 3))
Funktionen ovenfor definerer to parametre: grundlag og højde, dividerer deres produkt med to og returnerer resultatet som output. Du kan skrive hvilken logik du vil have din funktion til at udføre.
Forstå funktionsargumenter
I tidligere eksempler har funktionerne taget argumenter for at udføre handlinger. Argumenterne i disse eksempler er kendt som påkrævede eller positionelle argumenter. I Python kan dine argumenter være et af følgende:
- Positionelle argumenter
- Søgeordsargumenter
Positionelle argumenter
Positionelle argumenter skal sendes i den korrekte definitionsrækkefølge. For eksempel hvis du definerer en funktion med parametre a, b, og c, du skal angive værdier for disse parametre i overensstemmelse hermed, når du kalder dem. Lad os se på et tidligere eksempel:
# Python-funktion til at beregne summen af tre tal
defberegne_sum(a, b, c):
Vend tilbage a+b+c
print (beregn_sum(1,2,3)) # returnerer 6
print (beregn_sum(1000, 300,44)) # returnerer 1344
print (beregn_sum(12, 4,78)) # returnerer 94
I ovenstående program er beregne_sum() funktion tager tre argumenter, når vi kalder det. Hvert argument repræsenterer en tilsvarende parameter. I det første funktionskald, tal 1, 2, og 3 repræsentere a, b, og c derfor.
En parameter er erklæret i en funktions definition, mens et argument er den værdi, der sendes, når du kalder funktionen. Denne værdi er en repræsentation af dens tilsvarende parameter.
Positionelle argumenter er obligatoriske. Hvis du ikke tilføjer dem, får du en Typefejl. Følgende eksempel viser dette:
defberegne_sum(a, b, c):
Vend tilbage a+b+c
print (beregn_sum(1,2)) # rejser TypeError
Når du kører ovenstående program på din maskine, vil du få en fejl svarende til den på billedet nedenfor:
Søgeordsargumenter
Nøgleordsargumenter behøver ikke nødvendigvis sendes, når du kalder en funktion. De er valgfrie argumenter og behøver ikke at følge en bestemt rækkefølge. Python lader os bruge *args og **kwargs for at angive søgeordsargumenter.
Udover at bruge *args og **kwargs, er det også muligt at angive standardværdier for dine argumenter. Dette vil ikke få en fejl, hvis du glemmer at tilføje en værdi, når du kalder funktionen. Dette eksempel giver en illustration:
defberegne_sum(a, b, c=3):
Vend tilbage a+b+c
print (beregn_sum(1,2)) # returnerer 6
I ovenstående program, hvornår beregne_sum() hedder, er der intet argument for c; dette vil ikke påvirke programmet, fordi c har allerede en standardværdi. Du kan angive standardværdier for så mange argumenter, som du vil, men sørg for, at du gør dette med omtanke.
Brug funktioner til at organisere din kode
Funktioner er nyttige til at organisere din kode, hvilket gør den mere læsbar og effektiv. Med funktioner kan du opdele din kode i mindre, genbrugelige bidder, der er nemmere at forstå og vedligeholde. Derudover, hvis du skal foretage ændringer i din kode, behøver du kun at ændre den nødvendige funktion i stedet for hele kodebasen.