Sådan kalder du en funktion ind Python (Eksempel)
⚡ Smart opsummering
Fungerer i Python er genbrugelige kodeblokke, der kører, når de kaldes, defineret med def-sætningen. De accepterer argumenter, returnerer værdier og er afhængige af ensartet indrykning for at gruppere de sætninger, der tilhører hver funktion.
Hvad er funktion i Python?
A Funktion i Python er et stykke kode, der kører, når der refereres til det. Det bruges til at anvende koden mere end ét sted i et program. Det kaldes også en metode eller en procedure. Python tilbyder mange indbyggede funktioner som print(), input(), compile() og exec(), men det giver dig også friheden til at oprette dine egne funktioner.
Sådan defineres og kaldes en funktion ind Python
En funktion i Python er defineret af "def"-sætningen efterfulgt af funktionsnavnet og parenteser (()).
Eksempel:
Lad os definere en funktion ved at bruge kommandoen “def func1():” og kalde funktionen. Funktionens output vil være “Jeg lærer Python fungere".
Funktionskaldet func1() kalder vores def func1(): og udskriver kommandoen "Jeg lærer Python funktion Ingen.”
Der er et sæt regler i Python programmering at definere en funktion.
- Eventuelle argumenter eller inputparametre skal placeres inden for disse parenteser.
- Funktionens første sætning kan være en valgfri sætning — funktionens docstring eller dokumentationsstreng.
- Koden i hver funktion starter med et kolon (:) og skal være indrykket (mellemrum).
- Udtrykket return (udtryk) afslutter en funktion og sender eventuelt en værdi tilbage til den, der kalder den. En return-udtryk uden argumenter er det samme som en return None.
Betydningen af indrykning (mellemrum) i Python
Før vi bliver bekendt med Python funktioner, er det vigtigt, at vi forstår indrykningsreglen, der skal erklæres Python funktioner, og disse regler gælder for andre elementer af Python samt, såsom at deklarere betingelser, løkker eller variabler.
Python følger en bestemt indrykningsstil for at definere koden. Da Python Funktioner har ikke nogen eksplicit begyndelse eller slutning som krøllede parenteser til at angive funktionens start og stop, de er afhængige af denne indrykning. Her tager vi et simpelt eksempel med kommandoen "print". Når vi skriver funktionen "print" lige under def func1(): linjen, vil den vise en "indrykningsfejl: forventet en indrykket blok".
Når du nu tilføjer indrykningen (mellemrummet) foran "print"-funktionen, burde den udskrive som forventet.
Mindst ét indryk er nok til at få din kode til at fungere korrekt. Men som en god praksis er det tilrådeligt at efterlade omkring 3-4 indrykningsmellemrum til at kalde din funktion.
Det er også nødvendigt, at du, når du deklarerer indentation, bevarer den samme indentation for resten af din kode. For eksempel, i skærmbilledet nedenfor, når vi kalder en anden sætning "still in func1", og den ikke er deklareret lige under den første print-sætning, vil den vise en indentationsfejl: "unindent matcher ikke noget andet indentationsniveau".
Når vi nu anvender den samme indrykning for begge udsagn og justerer dem på samme linje, giver det det forventede output.
Hvordan fungerer returnerer værdien?
Returkommandoen i Python angiver hvilken værdi der skal gives tilbage til funktionens kalder. Lad os forstå dette med følgende eksempel.
Trin 1) Funktionen returnerer ikke noget
Her ser vi, når en funktion ikke "returnerer". For eksempel ønsker vi kvadratet af 4, og det skal give svaret "16", når koden udføres. Det giver det, når vi blot bruger koden "print x*x", men når du kalder funktionen "print square", giver den "None" som output. Dette skyldes, at når du kalder funktionen, sker der ikke rekursion, og den falder af i slutningen af funktionen. Python returnerer "Ingen" for at falde uden for slutningen af funktionen.
Trin 2) Erstat udskriftskommandoen med en tildelingskommando
For at gøre dette tydeligere erstatter vi print-kommandoen med en assignment-kommando. Lad os tjekke outputtet.
Når du kører kommandoen "print square (4)", returnerer den faktisk værdien af objektet. Da vi ikke har nogen specifik funktion at køre over her, returnerer den "None".
Trin 3) Brug funktionen 'return' og udfør koden
Nu skal vi se på, hvordan man henter outputtet ved hjælp af kommandoen "return". Når du bruger funktionen "return" og udfører koden, vil den give outputtet "16".
Trin 4) Kør kommandoen 'print square'
Fungerer i Python er i sig selv et objekt, og et objekt har en vis værdi. Vi vil her se hvordan Python behandler et objekt. Når du kører kommandoen "print square", returnerer den objektets værdi. Da vi ikke har givet noget argument, har vi ikke nogen specifik funktion at køre over her, så den returnerer en standardværdi (0x021B2D30), som er objektets placering. I en praktisk Python program, så får du sandsynligvis aldrig brug for at gøre dette.
Argumenter i funktioner
Et argument er en værdi, der sendes til funktionen, når den kaldes.
Med andre ord, på den kaldende side er det et argument, og på funktionssiden er det en parameter.
Lad os se hvordan Python argumenter virker.
Trin 1) Argumenter deklareres i funktionsdefinitionen. Når du kalder funktionen, kan du sende værdierne for disse argumenter som vist nedenfor.
Trin 2) For at deklarere en standardværdi for et argument skal du tildele det en værdi i funktionsdefinitionen.
Eksempel: x har ingen standardværdi. Standardværdien y=0. Når vi kun angiver ét argument, når vi kalder multiplikationsfunktionen, Python tildeler den angivne værdi til x, mens keeping værdien af y=0. Derfor multiplikatoren af x*y=0.
Trin 3) Denne gang ændrer vi værdien til y=2 i stedet for standardværdien y=0, og outputtet returneres som (4×2)=8.
Trin 4) Du kan også ændre den rækkefølge, som argumenterne sendes i PythonHer har vi vendt rækkefølgen af værdierne x og y om til x=4 og y=2.
Trin 5) Flere argumenter kan også sendes som et array. Her i eksemplet kalder vi de flere argumenter (1,2,3,4,5) ved at kalde funktionen (*args).
Eksempel: Vi deklarerede flere argumenter som tallene (1,2,3,4,5); når vi kalder funktionen (*args), udskriver den outputtet som (1,2,3,4,5).
tips:
- In Python 2.7, funktionsoverbelastning understøttes ikke. Funktionsoverbelastning er muligheden for at oprette flere metoder med samme navn med en forskellig implementering. Funktionsoverbelastning understøttes fuldt ud i Python 3.
- Der er en del forvirring mellem metoder og funktioner. Metoder i Python er tilknyttet objektinstanser, mens funktioner ikke er det. Python kalder en metode, binder den den første parameter i det kald til den relevante objektreference. Med enkle ord, en selvstændig funktion i Python er en "funktion", hvorimod en funktion, der er en egenskab for en klasse eller en instans, er en "metode".
Her er det komplette Python 3 kode
#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))
Her er det komplette Python 2 kode
#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)















