Voorbeelden van Python-functies: aanroepen, inspringen, argumenten & Retourwaarden

Inhoudsopgave:

Anonim

Wat is functie in Python?

Een functie in Python is een stuk 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 vrijheid om je eigen functies te creëren.

In deze tutorial zullen we leren

  • Hoe een functie in Python te definiëren en aan te roepen
  • Betekenis van inspringing (spatie) in Python
  • Hoe de functie waarde retourneert?
  • Argumenten in functies

Hoe een functie in Python te definiëren en aan te roepen

Functie in Python wordt gedefinieerd door de "def" -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 output van de functie is "Ik leer de Python-functie".

De functie print func1 () roept onze def func1 (): aan en print het commando " Ik leer Python-functie None. "

Er zijn een aantal regels in Python om een ​​functie te definiëren.

  • Alle argumenten of invoerparameters moeten tussen deze haakjes worden geplaatst
  • De eerste instructie van de functie kan een optionele instructie-docstring zijn of de documentatiestring van de functie
  • De code in elke functie begint met een dubbele punt (:) en moet worden ingesprongen (spatie)
  • De instructie return (expression) verlaat een functie en geeft optioneel een waarde terug aan de beller. Een return-statement zonder args is hetzelfde als return None.

Betekenis van inspringing (spatie) in Python

Voordat we vertrouwd raken met Python-functies, is het belangrijk dat we de inspringingsregel begrijpen om Python-functies te declareren en deze regels zijn ook van toepassing op andere elementen van Python, zoals het declareren van voorwaarden, loops of variabele.

Python volgt een bepaalde stijl van inspringen om de code te definiëren, aangezien Python-functies geen expliciet begin of einde hebben zoals accolades om het begin en einde van de functie aan te geven, moeten ze vertrouwen op deze inspringing . Hier nemen we een eenvoudig voorbeeld met de opdracht "print". Als we de "print" -functie direct onder de def-functie 1 () schrijven: Het zal een " inspringingsfout: verwacht een ingesprongen blok " weergeven.

Als u nu de inspringing (spatie) toevoegt vóór de "print" -functie, zou deze moeten worden afgedrukt zoals verwacht.

Ten minste één streepje is 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 op te roepen .

Het is ook noodzakelijk dat u tijdens het declareren van inspringing dezelfde inspringing moet behouden voor de rest van uw code . Als we bijvoorbeeld in onderstaande schermafbeelding een andere instructie "nog steeds in func1" noemen en wanneer deze niet direct onder de eerste afdrukinstructie wordt gedeclareerd, wordt een inspringingsfout weergegeven "unindent komt niet overeen met een ander inspringingsniveau."

Als we nu dezelfde inspringing toepassen voor beide instructies en ze op dezelfde regel uitlijnen, geeft dit de verwachte uitvoer.

Hoe de functie waarde retourneert?

De opdracht Return in Python geeft aan welke waarde moet worden teruggegeven aan de aanroeper van de functie.

Laten we dit begrijpen met het volgende voorbeeld

Stap 1) Hier - we zien wanneer de functie niet "terugkeer" is. We willen bijvoorbeeld het kwadraat van 4, en het zou antwoord "16" moeten geven wanneer de code wordt uitgevoerd. Wat het geeft als we simpelweg "print x * x" code 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 aan het einde van de functie valt. Python retourneert "None" voor het mislukken van het einde van de functie.

Stap 2) Om dit duidelijker te maken, vervangen we het printcommando door het opdrachtcommando. Laten we de uitvoer bekijken.

Als je het commando "print square (4)" uitvoert, retourneert het feitelijk de waarde van het object, aangezien we hier geen specifieke functie hebben om uit te voeren, retourneert het "None".

Stap 3) Nu, hier zullen we zien hoe we de uitvoer kunnen ophalen met het "return" commando. Als je de "return" -functie gebruikt en de code uitvoert, zal het de output "16" geven.

Stap 4) Functies in Python zijn zelf een object en een object heeft een bepaalde waarde. We zullen hier zien hoe Python een object behandelt. Als je het commando "print square" uitvoert, geeft het de waarde van het object terug. Omdat we geen enkel argument hebben doorgegeven, hoeven we hier geen specifieke functie uit te voeren, het retourneert een standaardwaarde (0x021B2D30) die de locatie van het object is. In het praktische Python-programma hoef je dit waarschijnlijk nooit te doen.

Argumenten in functies

Het argument is een waarde die wordt doorgegeven aan de functie wanneer deze wordt aangeroepen.

Met andere woorden: aan de oproepende kant is het een argument en aan de functiezijde 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 wordt weergegeven

Stap 2) Om een ​​standaardwaarde van een argument te declareren, wijst u het een waarde toe bij de functiedefinitie.

Voorbeeld: x heeft geen standaardwaarden. Standaardwaarden van y = 0. Wanneer we slechts één argument opgeven tijdens het aanroepen van de vermenigvuldigingsfunctie, wijst Python de geleverde 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 het zal de uitvoer retourneren als (4x2) = 8.

Stap 4) U kunt ook de volgorde wijzigen waarin de argumenten in Python kunnen worden doorgegeven. Hier hebben we de volgorde van de waarde x en y omgedraaid naar x = 4 en y = 2.

Stap 5) Meerdere argumenten kunnen ook als een array worden doorgegeven. Hier in het voorbeeld noemen we de meerdere args (1,2,3,4,5) door de functie (* args) aan te roepen.

Voorbeeld: we hebben meerdere args 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. overbelasting van functies wordt niet ondersteund in Python. Functie-overbelasting is de mogelijkheid om meerdere methoden met dezelfde naam te maken met een andere implementatie. Functieoverbelasting wordt volledig ondersteund in Python 3
  • Er is nogal wat verwarring tussen methoden en functies. Methoden in Python zijn gekoppeld aan objectinstanties, terwijl de functie dat niet is. Wanneer Python een methode aanroept, bindt het de eerste parameter van die aanroep aan de juiste objectreferentie. In eenvoudige bewoordingen is een zelfstandige functie in Python een "functie", terwijl een functie die een attribuut is van een klasse of instantie een "methode" is.

Hier is de volledige Python 3-code

#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))

Hier is de volledige Python 2-code

#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)

Overzicht:

Functie in Python is een stuk herbruikbare code dat wordt gebruikt om een ​​enkele, gerelateerde actie uit te voeren. In dit artikel zullen we zien

  • Functie gedefinieerd door de def- instructie
  • Het codeblok binnen elke functie begint met een dubbele punt (:) en moet worden ingesprongen (spatie)
  • Alle argumenten of invoerparameters moeten tussen deze haakjes worden geplaatst, enz.
  • Er moet ten minste één streepje worden achtergelaten vóór de code na het declareren van de functie
  • Dezelfde inspringingsstijl moet in de hele code binnen def-functie worden gehandhaafd
  • Voor best practices worden drie of vier streepjes als beste beschouwd vóór de verklaring
  • U kunt het "return" -commando gebruiken om waarden terug te sturen naar de functieaanroep.
  • Python zal een willekeurige waarde zoals (0x021B2D30) afdrukken als het argument niet wordt geleverd aan de aanroepende functie. Voorbeeld "afdrukfunctie."
  • Aan de oproepende kant is het een argument en aan de functiezijde is het een parameter
  • Standaardwaarde in argument - Wanneer we slechts één argument opgeven tijdens het aanroepen van de vermenigvuldigingsfunctie of een andere functie, wijst Python het andere argument standaard toe
  • Python stelt je in staat om de volgorde van het argument ook om te keren