Sobes.tech
Junior — Middle

Python'da dekoratorlar tushunchasini va ular qanday qilib funksiyalarning xulq-atvorini o'zgartirish uchun ishlatilishini tushuntiring.

sobes.tech AI

AIdan javob

Python'dagi dekoratorlar boshqa funksiyani qabul qiladigan va o'zgartirilgan yoki kengaytirilgan xulq-atvor bilan yangi funksiya qaytaradigan funksiyalardir, bu dekoratsiya qilingan funksiyaning manba kodini o'zgartirmaydi.

Ular ko'pincha quyidagi uchun ishlatiladi:

  • chaqiruvlarni log qilish
  • kirish huquqlarini tekshirish
  • natijalarni kechiktirish
  • bajarilish vaqtini o'lchash

Oddiy dekorator misoli, funksiyani chaqirishdan oldin va keyin xabar chiqaradi:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Funksiya chaqirilishidan oldin")
        result = func(*args, **kwargs)
        print("Funksiya chaqirilgandan keyin")
        return result
    return wrapper

@decorator
def salom_ber(ism):
    print(f"Salom, {ism}!")

salom_ber("Dunyo")

Chiqish quyidagicha bo'ladi:

Funksiya chaqirilishidan oldin
Salom, Dunyo!
Funksiya chaqirilgandan keyin

Shu tarzda, dekoratorlar funksiyalarning xulq-atvorini dinamik tarzda o'zgartirish imkonini beradi, ularning manba kodini o'zgartirmasdan.