Junior — Middle
Vysvetlite koncept dekorátorov v Pythone a ako sa používajú na zmenu správania funkcií.
sobes.tech AI
Odpoveď od AI
Dekorátory v Pythone sú funkcie, ktoré prijímajú inú funkciu a vracajú novú funkciu s upraveným alebo rozšíreným správaním, bez zmeny zdrojového kódu dekorovanej funkcie.
Často sa používajú na:
- Logovanie volaní
- Kontrolu prístupových práv
- Ukladanie výsledkov do vyrovnávacej pamäte
- Meranie času vykonávania
Príklad jednoduchého dekorátora, ktorý vypíše správu pred a po volaní funkcie:
def decorator(func):
def wrapper(*args, **kwargs):
print("Pred volaním funkcie")
result = func(*args, **kwargs)
print("Po volaní funkcie")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Ahoj, {name}!")
say_hello("Svet")
Výstup bude:
Pred volaním funkcie
Ahoj, Svet!
Po volaní funkcie
Týmto spôsobom umožňujú dekorátory dynamicky meniť správanie funkcií bez zmeny ich zdrojového kódu.