Een functie aanroepen in 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 een functie in Python te definiëren en aan te roepen

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 leer de Python-functie".

Definieer en roep een functie aan in Python

De functie afdrukfunctiec1() roept onze def func1(): en print de opdracht ” Ik leer de Python-functie Geen."

Er zijn 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 vertrouwd raken met Python-functies, is het belangrijk dat we de inspringregel begrijpen om Python-functies te declareren. Deze regels zijn van toepassing op andere elementen van Python, evenals op het declareren van voorwaarden, lussen of variabelen.

Python volgt een bepaalde stijl van inspringen om de code te definiëren, aangezien 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'.

Definieer en roep een functie aan in Python

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

Definieer en roep een functie aan in Python

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.”

Definieer en roep een functie aan in Python

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

Definieer en roep een functie aan in Python

Hoe functioneert de retourwaarde?

De Return-opdracht in Python specificeert welke waarde moet worden teruggegeven aan de aanroeper van de functie. Laten we dit met het volgende begrijpenwing 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" omdat het einde van de functie niet is voltooid.

Functie Retourwaarde

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.

Functie Retourwaarde

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".

Functie Retourwaarde

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 een object behandelt. 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 het praktische Python-programma zul je dit waarschijnlijk nooit nodig hebben.

Functie Retourwaarde

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

Argumenten in functies

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

Argumenten in functies

Voorbeeld: x heeft geen standaardwaarden. Standaardwaarden van y=0. Wanneer we slechts één argument opgeven tijdens het aanroepen van de vermenigvuldigingsfunctie, wijst Python de opgegeven waarde toe aan x, terwijl de waarde van y = 0 behouden blijft. Vandaar de vermenigvuldiging van x*y=0

definieer en roep een functie aan in Python

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.

Argumenten in functies

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

Argumenten in functies

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)

Argumenten in functies

Tips:

  • In Python 2.7. functie overbelasting wordt niet ondersteund in 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 in Python zijn geassocieerd met 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 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)

Samengevat

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 zoals (0x021B2D30) afdrukken wanneer het argument niet aan de aanroepende functie wordt doorgegeven. 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 bij het aanroepen van de vermenigvuldigingsfunctie of een andere functie, wijst Python standaard het andere argument toe
  • Met Python kun je ook de volgorde van het argument omkeren