Függvényparaméterek a Pythonban
Miért fontosak a függvényparaméterek?
A függvényparaméterek lehetővé teszik, hogy rugalmas és újrafelhasználható kódot írjunk. A Python különböző paramétertípusai segítenek abban, hogy függvényeink alkalmazkodni tudjanak különböző helyzetekhez.
def koszont(nev):
"""Egyszerű köszöntő függvény egy paraméterrel"""
return f"Szia {nev}!"
# Használat
print(koszont("Anna")) # Kiírja: Szia Anna!
Mit fogunk tanulni?
Pozicionális és Opcionális Paraméterek
Pozicionális Paraméterek
A pozicionális paramétereket sorrendben kell megadni a függvényhíváskor. Ezek kötelező paraméterek, amelyeket mindenképpen meg kell adnunk.
def osszeadas(a, b):
"""Két szám összeadása pozicionális paraméterekkel"""
return a + b
# Használat
print(osszeadas(5, 3)) # Eredmény: 8
Opcionális Paraméterek
Az opcionális paramétereknek alapértelmezett értékük van, így nem kötelező őket megadni a függvényhíváskor.
def koszont(nev, udvozles="Szia"):
"""Köszöntés opcionális üdvözlő szöveggel"""
return f"{udvozles}, {nev}!"
# Használat
print(koszont("Anna")) # Eredmény: Szia, Anna!
print(koszont("Béla", "Hello")) # Eredmény: Hello, Béla!
*args - Változó Számú Pozicionális Paraméter
Mi az a *args?
A *args
lehetővé teszi tetszőleges számú pozicionális paraméter átadását egy függvénynek. A Python egy tuple-be gyűjti ezeket az értékeket.
def osszegzes(*args):
"""Tetszőleges számú érték összeadása"""
return sum(args)
# Használat
print(osszegzes(1, 2, 3)) # Eredmény: 6
print(osszegzes(1, 2, 3, 4, 5)) # Eredmény: 15
Hogyan működik?
Példa: Átlagszámítás
Az alábbi függvény tetszőleges számú érték átlagát számolja ki:
def atlag(*args):
"""Tetszőleges számú érték átlaga"""
if not args:
return 0
return sum(args) / len(args)
# Használat
print(atlag(70, 80, 90)) # Eredmény: 80.0
print(atlag(1, 2, 3, 4, 5)) # Eredmény: 3.0
**kwargs - Kulcs-Érték Párok
Mi az a **kwargs?
A **kwargs
lehetővé teszi tetszőleges számú kulcs-érték pár átadását egy függvénynek. A Python egy dictionary-be (szótárba) gyűjti ezeket az értékeket.
def szemely_info(**kwargs):
"""Személyes információk megjelenítése"""
return "\n".join(f"{key}: {value}" for key, value in kwargs.items())
# Használat
print(szemely_info(nev="Anna", kor=25, varos="Budapest"))
print(szemely_info(nev="Béla", foglalkozas="programozó"))
Készíts személyi adatlapot:
Hogyan működik?
{ }
Gyakorlati példa: Termék konfigurátor
A következő példában egy terméket konfigurálhatunk különböző tulajdonságokkal:
def termek_konfig(**kwargs):
"""Termék konfigurálása különböző tulajdonságokkal"""
alap = {
'szin': 'fehér',
'meret': 'M',
'anyag': 'pamut'
}
alap.update(kwargs) # Frissítjük az alapértékeket
return alap
# Használat
print(termek_konfig(szin="kék", meret="L"))
print(termek_konfig(anyag="selyem", extra_zseb=True))
Termék konfigurátor:
Kombinált Paraméterek
Minden együtt
Az alábbi példában láthatjuk, hogyan használhatjuk együtt a különböző típusú paramétereket:
def rendezes(sorrend="növekvő", *szamok, **beallitasok):
"""
Számok rendezése különböző beállításokkal
- sorrend: növekvő vagy csökkenő (opcionális)
- *szamok: a rendezendő számok
- **beallitasok: extra beállítások (pl. abszolút=True)
"""
szamlista = list(szamok)
# Abszolút érték szerinti rendezés
if beallitasok.get('abszolut', False):
szamlista.sort(key=abs)
else:
szamlista.sort()
# Sorrend beállítása
if sorrend == "csökkenő":
szamlista.reverse()
return szamlista
# Példák:
print(rendezes(5, 1, -3, 2)) # [1, 2, -3, 5]
print(rendezes("csökkenő", 5, 1, -3, 2)) # [5, 2, -3, 1]
print(rendezes(5, 1, -3, 2, abszolut=True)) # [1, 2, -3, 5]