Sobes.tech
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.