Een functie oproepen Python (Voorbeeld)
Wat is functie in Python?
A Functie in Python is een stukje code dat wordt uitgevoerd wanneer ernaar wordt verwezen. Het wordt gebruikt om de code op meer dan één plaats in een programma te gebruiken. Het wordt ook wel methode of procedure genoemd. Python biedt veel ingebouwde functies zoals print(), input(), compile(), exec(), etc. maar het geeft ook de vrijheid om je eigen functies te creëren.
Hoe u een functie definieert en aanroept Python
Functie in Python wordt gedefinieerd door de “zeker” instructie gevolgd door de functienaam en haakjes ( () )
Voorbeeld:
Laten we een functie definiëren door het commando "def func1():" te gebruiken en de functie aan te roepen. De uitvoer van de functie zal zijn “Ik ben aan het leren Python functie".
De functie afdrukfunctiec1() roept onze def func1(): en print de opdracht ” Ik ben aan het leren Python functie Geen."
Er zitten een aantal regels in Python om een functie te definiëren.
- Eventuele argumenten of invoerparameters moeten tussen deze haakjes worden geplaatst
- De functie eerste instructie kan een optionele instructie-docstring zijn of de documentatiereeks van de functie
- De code binnen elke functie begint met een dubbele punt (:) en moet ingesprongen zijn (spatie)
- De instructie return (expressie) verlaat een functie en geeft optioneel een waarde terug aan de aanroeper. Een return-instructie zonder argumenten is hetzelfde als return Geen.
Betekenis van inkeping (ruimte) in Python
Voordat we er kennis mee maken Python functies, is het belangrijk dat we de inspringregel begrijpen die we moeten declareren Python functies en deze regels zijn van toepassing op andere elementen van Python evenals het declareren van voorwaarden, lussen of variabelen.
Python volgt een bepaalde stijl van inspringen om de code te definiëren, sindsdien Python functies hebben geen expliciet begin of einde zoals accolades om het begin en einde van de functie aan te geven, ze moeten op deze inspringing vertrouwen. Hier nemen we een eenvoudig voorbeeld met de opdracht “print”. Wanneer we de functie “print” direct onder de def func 1 () schrijven: er wordt een “inspringfout: verwachtte een ingesprongen blok'.
Wanneer u nu de inspringing (spatie) vóór de functie "afdrukken" toevoegt, zou deze moeten worden afgedrukt zoals verwacht.
Eén streepje is tenminste voldoende om uw code succesvol te laten werken. Maar als best practice is het raadzaam om ongeveer 3-4 streepjes over te laten om uw functie aan te roepen.
Het is ook noodzakelijk dat u dit tijdens het declareren van de inspringing moet doen behoud dezelfde inspringing voor de rest van uw code. Als we in onderstaande schermafbeelding bijvoorbeeld een andere instructie 'nog steeds in func1' noemen en deze niet direct onder de eerste printinstructie wordt gedeclareerd, wordt er een inspringfout weergegeven “unindent komt niet overeen met enig ander inspringingsniveau.”
Als we nu dezelfde inspringing toepassen op beide instructies en ze op dezelfde regel uitlijnen, geeft dit de verwachte uitvoer.
Hoe functioneert de retourwaarde?
Commando teruggeven Python specificeert welke waarde moet worden teruggegeven aan de aanroeper van de functie. Laten we dit begrijpen met het volgende voorbeeld
Stap 1) De functie retourneert niets
Hier zien we wanneer de functie niet “return” is. We willen bijvoorbeeld het kwadraat van 4, en dit zou antwoord “16” moeten geven wanneer de code wordt uitgevoerd. Dat geeft het als we simpelweg de code “print x*x” gebruiken, maar als je de functie “print square” aanroept, geeft het “None” als uitvoer. Dit komt omdat wanneer u de functie aanroept, er geen recursie plaatsvindt en van het einde van de functie valt. Python retourneert "Geen" voor het mislukken van het einde van de functie.
Stap 2) Vervang het afdrukcommando door het toewijzingscommando
Om dit duidelijker te maken vervangen we het printcommando door het toewijzingscommando. Laten we de uitvoer controleren.
Wanneer u het commando “print square (4)” uitvoert, retourneert het feitelijk de waarde van het object, aangezien we hier geen specifieke functie hebben om over te lopen. Het retourneert “Geen”.
Stap 3) Gebruik de 'return'-functie en voer de code uit
Nu zullen we hier zien hoe we de uitvoer kunnen ophalen met de opdracht "return". Wanneer u de functie "return" gebruikt en de code uitvoert, krijgt u de uitvoer "16".
Stap 4) Voer het commando 'print square' uit
Functies in Python zijn zelf een object, en een object heeft een bepaalde waarde. We zullen hier zien hoe Python behandelt een voorwerp. Wanneer u het commando “print square” uitvoert, wordt de waarde van het object geretourneerd. Omdat we geen enkel argument hebben doorgegeven, hebben we geen specifieke functie die we hier kunnen uitvoeren. Het retourneert een standaardwaarde (0x021B2D30), wat de locatie van het object is. In de praktijk Python programma, hoeft u dit waarschijnlijk nooit te doen.
Argumenten in functies
Het argument is een waarde die aan de functie wordt doorgegeven wanneer deze wordt aangeroepen.
Met andere woorden, aan de aanroepende kant is het een argument en aan de functiekant is het een parameter.
Laten we eens kijken hoe Python Args werkt –
Stap 1) Argumenten worden gedeclareerd in de functiedefinitie. Terwijl u de functie aanroept, kunt u de waarden voor die args doorgeven, zoals hieronder weergegeven
Stap 2) Om een standaardwaarde van een argument te declareren, wijst u er een waarde aan toe bij functiedefinitie.
Voorbeeld: x heeft geen standaardwaarden. Standaardwaarden van y=0. Wanneer we slechts één argument opgeven terwijl we de vermenigvuldigingsfunctie aanroepen, Python wijst de opgegeven waarde toe aan x terwijl de waarde van y=0 behouden blijft. Vandaar de vermenigvuldiging van x*y=0
Stap 3) Deze keer zullen we de waarde wijzigen in y=2 in plaats van de standaardwaarde y=0, en de uitvoer retourneren als (4×2)=8.
Stap 4) U kunt ook de volgorde wijzigen waarin de argumenten kunnen worden doorgegeven PythonHier hebben we de volgorde van de waarden x en y omgedraaid naar x=4 en y=2.
Stap 5) Meerdere argumenten kunnen ook als array worden doorgegeven. Hier in het voorbeeld noemen we de meerdere argumenten (1,2,3,4,5) door de functie (*args) aan te roepen.
Voorbeeld: We hebben meerdere argumenten gedeclareerd als getal (1,2,3,4,5) wanneer we de functie (*args) aanroepen; het drukt de uitvoer af als (1,2,3,4,5)
Tips:
- In Python 2.7. functie overbelasting wordt niet ondersteund Python. Functie-overbelasting is de mogelijkheid om meerdere methoden met dezelfde naam te maken met een verschillende implementatie. Functie Overbelasting wordt volledig ondersteund in Python 3
- Er bestaat nogal wat verwarring tussen methoden en functies. Methoden binnen Python zijn geassocieerd met objectinstanties, terwijl functie dat niet is. Wanneer Python een methode aanroept, bindt het de eerste parameter van die aanroep aan de juiste objectreferentie. In eenvoudige woorden: een zelfstandige functie in Python is een “functie”, terwijl een functie die een attribuut is van een klasse of een instantie een “methode” is.
Hier is de volledige Python 3 code
#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))
Hier is de volledige Python 2 code
#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)
Samenvatting
Functie in Python is een stukje herbruikbare code dat wordt gebruikt om een enkele, gerelateerde actie uit te voeren. In dit artikel zullen we zien
- Functie gedefinieerd door de def verklaring
- Het codeblok binnen elke functie begint met een dubbele punt (:) en moet ingesprongen zijn (spatie)
- Eventuele argumenten of invoerparameters moeten tussen deze haakjes worden geplaatst, enz.
- Er moet ten minste één streepje worden gelaten vóór de code na het declareren van de functie
- Dezelfde inspringstijl moet in de hele code binnen def-functie worden gehandhaafd
- Voor beste praktijken worden drie of vier streepjes vóór de verklaring als het beste beschouwd
- U kunt de opdracht “return” gebruiken om waarden terug te sturen naar de functieaanroep.
- Python zal een willekeurige waarde afdrukken, zoals (0x021B2D30) wanneer het argument niet wordt opgegeven aan de aanroepende functie. Voorbeeld “printfunctie.”
- Aan de aanroepende kant is het een argument en aan de functiekant is het een parameter
- Standaardwaarde in argument – Wanneer we slechts één argument opgeven tijdens het aanroepen van de vermenigvuldigingsfunctie of een andere functie, Python wijst standaard het andere argument toe
- Python stelt u in staat om de volgorde van het argument om te draaien