Junior — Middle
Izskaidrojiet dekoratoru koncepciju Python un kā tie tiek izmantoti funkciju uzvedības maiņai.
sobes.tech AI
Atbilde no AI
Python dekoratori ir funkcijas, kas pieņem citu funkciju un atgriež jaunu funkciju ar mainītu vai paplašinātu tās uzvedību, nemainot dekorētās funkcijas avota kodu.
Tie bieži tiek izmantoti:
- Izsaukumu reģistrēšanai
- Piekļuves tiesību pārbaudei
- Rezultātu kešatmiņai
- Laika mērīšanai
Vienkārša dekoratora piemērs, kas izvada ziņojumu pirms un pēc funkcijas izsaukšanas:
def decorator(func):
def wrapper(*args, **kwargs):
print("Pirms funkcijas izsaukšanas")
result = func(*args, **kwargs)
print("Pēc funkcijas izsaukšanas")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Sveiki, {name}!")
say_hello("Pasaule")
Izvade būs:
Pirms funkcijas izsaukšanas
Sveiki, Pasaule!
Pēc funkcijas izsaukšanas
Tādējādi dekoratori ļauj dinamiski mainīt funkciju uzvedību, nemainot to avota kodu.