def
Főnév
def (tsz. defs)
- (informatika) A függvények a programozás egyik legfontosabb építőkövei. Lehetővé teszik, hogy a kódot kisebb, jól körülhatárolt, újrahasznosítható egységekre bontsuk. A Pythonban a függvényeket a
defkulcsszóval hozzuk létre.
Ebben a leírásban megnézzük:
✅ mi az a függvény ✅ miért használunk függvényeket ✅ a def kulcsszó szintaxisát ✅ paramétereket és argumentumokat ✅ a return kulcsszó szerepét ✅ különböző példákat ✅ haladó technikákat (alapértelmezett értékek, *args, **kwargs) ✅ jó gyakorlatokat
📌 Mi az a függvény?
Egy függvény egy újrafelhasználható kódrészlet, ami valamilyen műveletet végez. Bemeneti adatokat kaphat (paraméterek), végrehajt egy sor utasítást, majd visszatérhet egy eredménnyel (return value).
Miért hasznos:
✅ Ne ismételd magad (DRY - Don’t Repeat Yourself) ✅ A kód logikus egységekre bontható ✅ Könnyebb karbantartani ✅ Könnyebb tesztelni ✅ Könnyebb olvasni és megérteni
📌 A def kulcsszó
A Pythonban a függvényt a def kulcsszóval definiáljuk.
Általános szintaxis:
def function_name(parameters):
# Függvény törzse
...
return eredmeny
Részei:
def: kulcsszó, ami jelzi, hogy függvényt definiálunkfunction_name: a függvény neve (kisbetűs, snake_case)parameters: zárójelben felsorolt bemeneti változók (paraméterek):kettőspont: kötelező, a törzs kezdete- Függvény törzse: beljebb húzott sorok (általában 4 szóköz indentációval)
- Opcionális
return: a függvény visszatérési értékét adja meg
📌 Egyszerű példa
def greet():
print("Hello, world!")
# Függvény meghívása
greet()
Kimenet:
Hello, world!
Ez a legegyszerűbb forma: nincs bemenet, nincs visszatérési érték.
📌 Paraméterek és argumentumok
Mi a különbség?
- Paraméter: a függvénydefinícióban szereplő változó
- Argumentum: a függvényhíváskor átadott konkrét érték
Példa:
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # 'name' paraméter, 'Alice' argumentum
Kimenet:
Hello, Alice!
A name paraméter a függvényen belül az Alice értéket veszi fel.
📌 Visszatérési érték — return
Gyakran szeretnénk, ha a függvény nemcsak végezne valamit, hanem eredményt is adna vissza.
Erre szolgál a return kulcsszó.
Példa:
def add(a, b):
return a + b
result = add(5, 3)
print(result)
Kimenet:
8
- A
returnután a függvény befejeződik és visszaadja az értéket. - A hívó kód a visszatérési értéket (
result) el tudja menteni, fel tudja használni.
Ha nincs return, a függvény None-t ad vissza.
def no_return():
print("Just printing")
x = no_return()
print(x) # None
📌 Több paraméter
A függvény tetszőleges számú paramétert vehet fel.
def multiply(x, y, z):
return x * y * z
print(multiply(2, 3, 4)) # 24
📌 Alapértelmezett paraméterek
Bizonyos paraméterekhez alapértelmezett értéket adhatunk.
def greet(name="world"):
print(f"Hello, {name}!")
greet() # Hello, world!
greet("Python") # Hello, Python!
- Ha nem adunk argumentumot, az alapértelmezett érték (
"world") lesz érvényes. - Az alapértelmezett paramétereknek jobbról balra kell állniuk.
📌 Kulcsszavas argumentumok
Híváskor az argumentumokat nevükkel is megadhatjuk.
def introduce(name, age):
print(f"My name is {name} and I am {age} years old.")
introduce(age=30, name="Alice")
Kimenet:
My name is Alice and I am 30 years old.
Előny:
✅ Nem kell betartani a paraméterek sorrendjét ✅ Kód olvashatóbb
📌 Változó hosszúságú argumentumlista
*args — Pozíciós argumentumok
Ha nem tudod előre, hány argumentumot kapsz:
def print_numbers(*args):
for number in args:
print(number)
print_numbers(1, 2, 3, 4)
- Az
argsegy tuple, amiben az összes extra argumentum benne lesz.
**kwargs — Kulcsszavas argumentumok
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="Budapest")
- A
kwargsegy dictionary, ami a kulcs-érték párokat tartalmazza.
📌 Docstring — Dokumentációs string
A függvény dokumentálására a def sor után egy docstring-et írhatunk.
def add(a, b):
"""
Összead két számot.
Paraméterek:
a -- első szám
b -- második szám
Visszatérés:
a + b összege
"""
return a + b
A docstring a help(add) vagy add.__doc__ révén lekérdezhető.
📌 Névterek és scope
- A függvény belsejében definiált változók lokálisak: csak ott érvényesek.
- Külső változókat nem módosít automatikusan (kivéve, ha
globalvagynonlocalkulcsszót használsz).
Példa:
x = 10
def my_func():
x = 5
print(x)
my_func() # 5
print(x) # 10
📌 Lambda függvények
Egyszerű, névtelen függvényt is lehet definiálni lambda kulcsszóval.
add = lambda x, y: x + y
print(add(2, 3)) # 5
- Hasznos pl.
map(),filter(),sorted()-nél.
📌 Jó gyakorlatok
✅ Adj értelmes, beszédes nevet a függvénynek ✅ Írj docstringet ✅ Ne írj túl hosszú függvényt (egy függvény 1 jól körülhatárolt dolgot csináljon) ✅ Ne módosíts kívülről jövő globális változót (kerüld a global használatát) ✅ A függvény ne legyen “mágikus” — a bemenetből mindig következzen a kimenet
📌 Összefoglalás
- A Pythonban a függvényeket a
defkulcsszóval definiáljuk. - A függvények lehetnek bemeneti paraméterekkel és/vagy visszatérési értékkel rendelkező újrahasznosítható kódrészletek.
- A
returnkulcsszóval adjuk vissza az eredményt. - Paraméterek lehetnek alapértelmezettek, kulcsszavasak, változó számúak.
- A docstring segít dokumentálni a függvényt.
- Függvények használata a Pythonban a jó minőségű, karbantartható kód alapja.