Hur man ringer in en funktion Python (Exempel)
⚡ Smart sammanfattning
Fungerar i Python är återanvändbara kodblock som körs när de anropas, definierade med def-satsen. De accepterar argument, returnerar värden och förlitar sig på konsekvent indentering för att gruppera de satser som hör till varje funktion.

Vad är funktion i Python?
A Funktion i Python är en kodstycke som körs när den refereras. Den används för att använda koden på mer än ett ställe i ett program. Den kallas också en metod eller en procedur. Python erbjuder många inbyggda funktioner som print(), input(), compile() och exec(), men det ger dig också friheten att skapa dina egna funktioner.
Hur man definierar och anropar en funktion Python
En funktion i Python definieras av kommandot ”def” följt av funktionsnamnet och parenteser (()).
Exempel:
Låt oss definiera en funktion genom att använda kommandot "def func1():" och anropa funktionen. Funktionens utdata blir "Jag lär mig Python fungera".
Funktionsanropet func1() anropar vår def func1(): och skriver ut kommandot "Jag lär mig Python funktion Ingen.”
Det finns en uppsättning regler i Python programmering att definiera en funktion.
- Alla argument eller inparametrar ska placeras inom dessa parenteser.
- Funktionens första kommando kan vara ett valfritt kommando — funktionens docstring eller dokumentationssträng.
- Koden i varje funktion börjar med ett kolon (:) och ska vara indragen (mellanslag).
- Satsen return (uttryck) avslutar en funktion, och skickar eventuellt tillbaka ett värde till anroparen. En return-sats utan argument är detsamma som return None.
Betydelsen av indrag (mellanslag) i Python
Innan vi blir bekanta med Python funktioner är det viktigt att vi förstår indragsregeln att deklarera Python funktioner, och dessa regler är tillämpliga på andra delar av Python såväl som att deklarera villkor, loopar eller variabler.
Python följer en viss typ av indentering för att definiera koden. Eftersom Python Funktioner har ingen explicit början eller slut som klammerparenteser för att indikera funktionens start och stopp, de måste förlita sig på denna indentering. Här tar vi ett enkelt exempel med kommandot "print". När vi skriver funktionen "print" precis under raden def func1(): kommer den att visa ett "indragningsfel: förväntat ett indraget block".
När du nu lägger till indraget (mellanslaget) framför funktionen "print" bör den skrivas ut som förväntat.
Minst ett indrag räcker för att din kod ska fungera korrekt. Men som en god praxis är det lämpligt att lämna cirka 3–4 indragsblanksteg för att anropa din funktion.
Det är också nödvändigt att du bibehåller samma indentering för resten av din kod när du deklarerar indentering. Till exempel, i skärmdumpen nedan, när vi anropar en annan sats "still in func1" och den inte deklareras precis under den första print-satsen, kommer den att visa ett indenteringsfel: "unindent does not match any other indentation level".
När vi nu tillämpar samma indentering för båda satserna och justerar dem på samma rad, ger det den förväntade utdata.
Hur fungerar avkastningsvärdet?
Returkommandot i Python anger vilket värde som ska ges tillbaka till funktionens anropare. Låt oss förstå detta med följande exempel.
Steg 1) Funktionen returnerar ingenting
Här ser vi när en funktion inte "returnerar". Till exempel vill vi ha kvadraten av 4, och den ska ge svaret "16" när koden körs. Det ger det när vi helt enkelt använder koden "print x*x", men när du anropar funktionen "print square" ger den "None" som utdata. Detta beror på att när du anropar funktionen sker ingen rekursion och den faller utanför slutet av funktionen. Python returnerar "Ingen" för att den faller utanför slutet av funktionen.
Steg 2) Ersätt utskriftskommandot med ett tilldelningskommando
För att göra detta tydligare ersätter vi utskriftskommandot med ett tilldelningskommando. Låt oss kontrollera resultatet.
När du kör kommandot "print square (4)" returnerar det faktiskt objektets värde. Eftersom vi inte har någon specifik funktion att köra över här returnerar det "None".
Steg 3) Använd funktionen 'return' och kör koden
Nu ska vi se hur man hämtar utdata med hjälp av kommandot "return". När du använder funktionen "return" och kör koden kommer det att ge utdata "16".
Steg 4) Kör kommandot "print square"
Fungerar i Python är i sig ett objekt, och ett objekt har ett visst värde. Vi får här se hur Python behandlar ett objekt. När du kör kommandot "print square" returnerar det objektets värde. Eftersom vi inte har skickat något argument har vi ingen specifik funktion att köra över här, så det returnerar ett standardvärde (0x021B2D30) som är objektets plats. I en praktisk Python programmet, kommer du förmodligen aldrig att behöva göra detta.
Argument i funktioner
Ett argument är ett värde som skickas till funktionen när den anropas.
Med andra ord, på den anropande sidan är det ett argument, och på funktionssidan är det en parameter.
Låt oss se hur Python argument fungerar.
Steg 1) Argument deklareras i funktionsdefinitionen. När du anropar funktionen kan du skicka värdena för dessa argument enligt nedan.
Steg 2) För att deklarera ett standardvärde för ett argument, tilldela det ett värde i funktionsdefinitionen.
Exempel: x har inget standardvärde. Standardvärdet y=0. När vi bara anger ett argument när vi anropar multiplikationsfunktionen, Python tilldelar det angivna värdet till x medan keeping värdet av y=0. Därav multiplikationen av x*y=0.
Steg 3) Den här gången ändrar vi värdet till y=2 istället för standardvärdet y=0, och det kommer att returnera utdata som (4×2)=8.
Steg 4) Du kan också ändra ordningen i vilken argumenten skickas PythonHär har vi bytt ordning på värdena x och y till x=4 och y=2.
Steg 5) Flera argument kan också skickas som en array. Här i exemplet anropar vi de flera argumenten (1,2,3,4,5) genom att anropa funktionen (*args).
Exempel: Vi deklarerade flera argument som talen (1,2,3,4,5); när vi anropar funktionen (*args) skriver den ut utdata som (1,2,3,4,5).
Tips:
- In Python 2.7, funktionsöverbelastning stöds inte. Funktionsöverbelastning är möjligheten att skapa flera metoder med samma namn med olika implementeringar. Funktionsöverbelastning stöds fullt ut i Python 3.
- Det råder en hel del förvirring mellan metoder och funktioner. Metoder i Python är associerade med objektinstanser, medan funktioner inte är det. När Python anropar en metod, binder den den första parametern i det anropet till lämplig objektreferens. Med enkla ord, en fristående funktion i Python är en "funktion", medan en funktion som är ett attribut för en klass eller en instans är en "metod".
Här är den kompletta Python 3-kod
#define a function
def func1():
print ("I am learning Python function")
print ("still in func1")
func1()
def square(x):
return x*x
print(square(4))
def multiply(x,y=0):
print("value of x=",x)
print("value of y=",y)
return x*y
print(multiply(y=2,x=4))
Här är den kompletta Python 2-kod
#define a function
def func1():
print " I am learning Python function"
print " still in func1"
func1()
def square(x):
return x*x
print square(4)
def multiply(x,y=0):
print"value of x=",x
print"value of y=",y
return x*y
print multiply(y=2,x=4)














