Python- funksies
'n Funksie is 'n kodeblok wat slegs loop wanneer dit opgeroep word.
Jy kan data, bekend as parameters, in 'n funksie deurgee.
'n Funksie kan as gevolg daarvan data terugstuur.
Die skep van 'n funksie
In Python word 'n funksie gedefinieer met behulp van die def- sleutelwoord:
Voorbeeld
def my_function():
print("Hello from a function")
Roep 'n funksie
Om 'n funksie te noem, gebruik die funksienaam gevolg deur hakies:
Voorbeeld
def my_function():
print("Hello from a function")
my_function()
Argumente
Inligting kan as argumente in funksies deurgegee word.
Argumente word gespesifiseer na die funksienaam, binne die hakies. Jy kan soveel argumente byvoeg as wat jy wil, skei hulle net met 'n komma.
Die volgende voorbeeld het 'n funksie met een argument (fname). Wanneer die funksie geroep word, gee ons 'n voornaam deur wat binne die funksie gebruik word om die volle naam te druk:
Voorbeeld
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
Argumente word dikwels verkort tot args in Python-dokumentasies.
Parameters of argumente?
Die terme parameter en argument kan vir dieselfde ding gebruik word: inligting wat in 'n funksie deurgegee word.
Vanuit 'n funksie se perspektief:
'n Parameter is die veranderlike wat binne die hakies in die funksiedefinisie gelys word.
'n Argument is die waarde wat na die funksie gestuur word wanneer dit geroep word.
Aantal argumente
By verstek moet 'n funksie geroep word met die korrekte aantal argumente. Dit beteken dat as jou funksie 2 argumente verwag, jy die funksie met 2 argumente moet oproep, nie meer nie en nie minder nie.
Voorbeeld
Hierdie funksie verwag 2 argumente, en kry 2 argumente:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
Voorbeeld
Hierdie funksie verwag 2 argumente, maar kry slegs 1:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")
Arbitrêre argumente, *args
As jy nie weet hoeveel argumente wat in jou funksie deurgegee sal word nie, voeg a *
voor die parameternaam in die funksiedefinisie by.
Op hierdie manier sal die funksie 'n reeks argumente ontvang, en kan die items dienooreenkomstig toegang verkry:
Voorbeeld
As die aantal argumente onbekend is, voeg 'n *
voor die parameternaam by:
def my_function(*kids):
print("The youngest child
is " + kids[2])
my_function("Emil", "Tobias", "Linus")
Arbitrêre argumente word dikwels verkort tot *args in Python-dokumentasies.
Sleutelwoordargumente
Jy kan ook argumente stuur met die sleutel = waarde sintaksis.
Op hierdie manier maak die volgorde van die argumente nie saak nie.
Voorbeeld
def my_function(child3, child2, child1):
print("The youngest child
is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
Die frase Sleutelwoord Argumente word dikwels verkort tot kwargs in Python-dokumentasies.
Arbitrêre sleutelwoordargumente, **kwargs
As jy nie weet hoeveel sleutelwoordargumente wat in jou funksie deurgegee sal word nie, voeg twee sterretjies by: **
voor die parameternaam in die funksiedefinisie.
Op hierdie manier sal die funksie 'n woordeboek van argumente ontvang, en kan die items dienooreenkomstig toegang verkry:
Voorbeeld
As die aantal sleutelwoordargumente onbekend is, voeg 'n dubbel
**
voor die parameternaam by:
def my_function(**kid):
print("His last name is " + kid["lname"])
my_function(fname = "Tobias", lname = "Refsnes")
Arbitrêre Kword-argumente word dikwels verkort tot **kwargs in Python-dokumentasies.
Verstekparameterwaarde
Die volgende voorbeeld wys hoe om 'n verstekparameterwaarde te gebruik.
As ons die funksie sonder argument noem, gebruik dit die verstekwaarde:
Voorbeeld
def my_function(country = "Norway"):
print("I am from " +
country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
Deur 'n lys as 'n argument deur te gee
Jy kan enige datatipe argument na 'n funksie stuur (string, nommer, lys, woordeboek ens.), en dit sal as dieselfde datatipe binne die funksie hanteer word.
As jy byvoorbeeld 'n Lys as 'n argument stuur, sal dit steeds 'n Lys wees wanneer dit die funksie bereik:
Voorbeeld
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
Terugkeerwaardes
Om 'n funksie 'n waarde te laat terugstuur, gebruik die return
stelling:
Voorbeeld
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
Die pasverklaring
function
definisies kan nie leeg wees nie, maar as jy om een of ander rede 'n function
definisie met geen inhoud het nie, plaas die pass
stelling in om te verhoed dat jy 'n fout kry.
Voorbeeld
def myfunction():
pass
Rekursie
Python aanvaar ook funksie rekursie, wat beteken dat 'n gedefinieerde funksie homself kan noem.
Rekursie is 'n algemene wiskundige en programmeringskonsep. Dit beteken dat 'n funksie homself noem. Dit het die voordeel dat dit beteken dat jy deur data kan loop om 'n resultaat te bereik.
Die ontwikkelaar moet baie versigtig wees met rekursie, aangesien dit redelik maklik kan wees om 'n funksie te skryf wat nooit eindig nie, of een wat oortollige hoeveelhede geheue of verwerkerkrag gebruik. As dit egter korrek geskryf is, kan rekursie 'n baie doeltreffende en wiskundig-elegante benadering tot programmering wees.
In hierdie voorbeeld is tri_recursion() 'n funksie wat ons gedefinieer het om homself ("recurse") te noem. Ons gebruik die k veranderlike as die data, wat afneem ( -1 ) elke keer as ons herhalend is. Die rekursie eindig wanneer die toestand nie groter as 0 is nie (dws wanneer dit 0 is).
Vir 'n nuwe ontwikkelaar kan dit 'n rukkie neem om uit te vind hoe presies dit werk, die beste manier om uit te vind is deur dit te toets en te wysig.
Voorbeeld
Rekursie Voorbeeld
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)