Som programmerare kommer du ofta finna dig själv utföra en åtgärd eller uppgift upprepade gånger. Detta kan vara tråkigt och tidskrävande, särskilt när man arbetar med en stor eller komplex kodbas. Att automatisera dem med funktioner är ett mer effektivt sätt att utföra sådana uppgifter. Funktioner låter dig skriva kodlogiken en gång och använda den var som helst i ditt program.
Vad är en Python-funktion?
I Python är en funktion ett kodblock som används för att utföra en specifik uppgift. Du behöver bara skriva en funktion en gång, men du kan använda den flera gånger i din kod. En funktion kan ta in argument som input och returnerar utdatavärden. Detta enkla program visar en funktion som beräknar summan av tre tal:
# Python-funktion för att beräkna summan av tre tal
defberäkna_summa(a, b, c):
lämna tillbaka a+b+c
skriv ut (beräkna_summa(1,2,3)) # returnerar 6
skriv ut (beräkna_summa(1000, 300,44)) # returnerar 1344
skriv ut (beräkna_summa(12, 4,78)) # returnerar 94
I programmet ovan returnerar funktionen summan av tre argument. När funktionen anropas flera gånger, returnerar den olika utdata för varje fall. En användbar applikation för den här funktionen kommer att vara en kalkylatorapp.
Definiera en funktion i Python
Python har många inbyggda funktioner tillgängliga för utvecklare att använda. Dessa inbyggda funktioner är dock inte alltid tillräckliga för att möta kraven i de flesta projekt. För att möta anpassade krav måste du definiera dina anpassade funktioner. Att definiera anpassade funktioner är vanligt vid programmering.
I Python kan du definiera en anpassad funktion genom att använda def nyckelord följt av namnet på din funktion med parentes framför. Här är ett exempel:
deffunktionsnamn()
Du bör notera dessa regler när du tilldelar ett funktionsnamn i Python:
- Funktionsnamn ska skrivas med gemener.
- Funktionsnamn ska vara beskrivande.
- Använd understreck för att separera ord i ett funktionsnamn.
Efter att ha definierat funktionen måste du skriva logiken för att utföra din önskade uppgift. Till exempel, den här funktionen beräknar arean av en triangel:
# Python-funktion för att beräkna arean av en triangel
defberäkna_triangelarea(bas, höjd):
area = (bas * höjd)/2
lämna tillbaka område
print (beräkna_triangel_area(12, 3))
Funktionen ovan definierar två parametrar: bas och höjd, delar sin produkt med två och returnerar resultatet som utdata. Du kan skriva vilken logik du vill att din funktion ska utföra.
Förstå funktionsargument
I tidigare exempel har funktionerna tagit argument för att utföra åtgärder. Argumenten i dessa exempel är kända som obligatoriska eller positionella argument. I Python kan dina argument vara något av följande:
- Positionsargument
- Nyckelordsargument
Positionella argument
Positionsargument måste skickas i rätt definitionsordning. Till exempel om du definierar en funktion med parametrar a, b, och c, du måste skicka in värden för dessa parametrar i enlighet med detta när du anropar dem. Låt oss undersöka ett tidigare exempel:
# Python-funktion för att beräkna summan av tre tal
defberäkna_summa(a, b, c):
lämna tillbaka a+b+c
skriv ut (beräkna_summa(1,2,3)) # returnerar 6
skriv ut (beräkna_summa(1000, 300,44)) # returnerar 1344
skriv ut (beräkna_summa(12, 4,78)) # returnerar 94
I programmet ovan visas beräkna_summa() funktion tar tre argument när vi kallar den. Varje argument representerar en motsvarande parameter. I det första funktionsanropet, nummer 1, 2, och 3 representera a, b, och c följaktligen.
En parameter deklareras i en funktions definition, medan ett argument är det värde som skickas när du anropar funktionen. Detta värde är en representation av dess motsvarande parameter.
Positionsargument är obligatoriska. Om du inte lägger till dem får du en Skrivfel. Följande exempel visar detta:
defberäkna_summa(a, b, c):
lämna tillbaka a+b+c
skriv ut (beräkna_summa(1,2)) # höjer TypeError
När du kör programmet ovan på din maskin får du ett fel som liknar det på bilden nedan:
Nyckelordsargument
Nyckelordsargument behöver inte nödvändigtvis skickas när du anropar en funktion. De är valfria argument och behöver inte följa en specifik ordning. Python låter oss använda *args och **kwargs för att ange sökordsargument.
Förutom att använda *args och **kwargs, är det också möjligt att ange standardvärden för dina argument. Om du gör detta får du inget fel om du glömmer att lägga till ett värde när du anropar funktionen. Detta exempel ger en illustration:
defberäkna_summa(a, b, c=3):
lämna tillbaka a+b+c
skriv ut (beräkna_summa(1,2)) # returnerar 6
I programmet ovan, när beräkna_summa() kallas finns det inget argument för c; detta kommer inte att påverka programmet eftersom c har redan ett standardvärde. Du kan ange standardvärden för så många argument du vill, men se till att du gör detta klokt.
Använd funktioner för att organisera din kod
Funktioner är användbara för att organisera din kod, vilket gör den mer läsbar och effektiv. Med funktioner kan du dela upp din kod i mindre, återanvändbara bitar som är lättare att förstå och underhålla. Dessutom, om du behöver göra ändringar i din kod behöver du bara ändra den nödvändiga funktionen snarare än hela kodbasen.