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