Funktsioon (function)
Mis on funktsioon?
- Funktsiooniga saab kirjeldada alamprogrammi või alamülesannet.
- See on koodiosa, mis täidab konkreetset ülesannet või arvutab midagi.
- Funktsioonil on üldiselt nimi.
Funktsiooni kirjeldamine ja parameetrid
Funktsioon defineeritakse märksõnaga def, millele järgneb nimi ja sulud parameetritega.
def hello_name(name):
print(f"Hello {name}!")
- Parameeter: muutuja funktsiooni kirjelduses (nt
name).
- Argument: väärtus, mis funktsiooni saadetakse (nt
"Guido").
Tagastamine (return)
- Pythonis tagastab funktsioon alati midagi. Kui
return puudub, tagastatakse None.
return lõpetab funktsiooni täitmise.
- Tagastada võib ka mitu väärtust korraga (tulemus on ennik ehk tuple).
def triangle_area(a, h):
return a * h / 2
return vs print()
return tagastab tulemuse, mida saab edasi kasutada (nt panna muutujasse).
print() lihtsalt kuvab väärtuse ekraanile, kuid ei "anna" seda väärtust programmile edasiseks tööks.
Vaikeväärtused ja nimelised argumendid
- Parameetritele saab määrata vaikeväärtusi:
def greet(name, type="Human"):.
- Funktsiooni väljakutsel saab argumente anda ka nimega, muutes nende järjekorda:
print_full_name(lastname="Kaal", name="Mati").
*args - võtab vastu suvalise arvu positsioonilisi argumente järjendina.
**kwargs - võtab vastu suvalise arvu märksõnaga argumente sõnastikuna.
Anonüümsed funktsioonid (lambda)
Lühikesed, ilma nimeta funktsioonid, mida kirjeldatakse kujul: lambda args: tulemus.
ta = lambda a, h: a * h / 2
print(ta(10, 10))
filter() ja map()
- filter(): rakendab funktsiooni järjendile ja jätab alles elemendid, kus funktsioon tagastab True.
- map(): rakendab funktsiooni järjendi igale elemendile (nt korrutab kõik arvud kahega).
Tüübivihjed (Type Hints)
Alates Python 3.5 versioonist saab määrata oodatavad andmetüübid, mida IDE-d kasutavad vigade leidmiseks.
def greeting(name: str) -> str:
return f'Hello {name}'
Miks kasutada funktsioone?
- DRY (Don't Repeat Yourself): väldi koodi dubleerimist.
- Abstraktsioon: programmi jagamine alamülesanneteks.
- Testimine: funktsioone on lihtsam ühekaupa kontrollida ja vigu leida.
Head tavad
- Funktsioon peaks tegema ühte konkreetset asja.
- Soovituslik pikkus on 10–15 rida.
- Nimi peab kirjeldama tegevust (nt
calculate_area).
- Kasuta docstringe (
""" kirjeldus """) sisu selgitamiseks.
Next topic