Junior — Middle
Selgitage dekoratiivide kontseptsiooni Pythonis ja kuidas neid kasutatakse funktsioonide käitumise muutmiseks.
sobes.tech AI
Vastus AI-lt
Python'i dekoratorid on funktsioonid, mis võtavad vastu teise funktsiooni ja tagastavad uue funktsiooni, mille käitumist on muudetud või laiendatud, ilma et muudetakse dekoratiivse funktsiooni lähtekoodi.
Neid kasutatakse sageli:
- Kutsungite logimiseks
- Juurdepääsuõiguste kontrollimiseks
- Tulemuste vahemällu salvestamiseks
- Täitmise aja mõõtmiseks
Lihtne dekoratsiooni näide, mis kuvab sõnumi enne ja pärast funktsiooni kutsumist:
def decorator(func):
def wrapper(*args, **kwargs):
print("Enne funktsiooni kutsumist")
result = func(*args, **kwargs)
print("Pärast funktsiooni kutsumist")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Tere, {name}!")
say_hello("Maailm")
Väljund on:
Enne funktsiooni kutsumist
Tere, Maailm!
Pärast funktsiooni kutsumist
Sellisel viisil võimaldavad dekoratorid dünaamiliselt muuta funktsioonide käitumist, ilma et peaks muutma nende lähtekoodi.