Junior — Middle
Python'da dekoratorlar yaratishda functools.wraps funksiyasining roli nima?
sobes.tech AI
AIdan javob
functools.wraps funksiyasi Python'da dekoratorlar yaratishda asl funksiyaning meta ma'lumotlarini saqlash uchun ishlatiladi. Wraps ishlatilmasdan, funksiyaning nomi, uning hujjat (doc) va boshqa atributlar, dekoratorning ichki funksiyasining atributlariga o'zgartiriladi, bu esa debugging va hujjatlashtirishni qiyinlashtiradi.
Foydalanish misoli:
import functools
def my_decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
print("Funktsiya chaqirilishidan oldin")
result = func(*args, **kwargs)
print("Funktsiya chaqirilgach")
return result
return wrapper
@my_decorator
def greet(name):
"Salomlashish funksiyasi"
print(f"Salom, {name}!")
print(greet.__name__) # 'greet' ni chiqaradi, 'wrapper' emas
print(greet.__doc__) # 'Salomlashish funksiyasi' ni chiqaradi
Shu tarzda, functools.wraps, dekoratsiya qilingan funktsiya haqida ma'lumotlarni saqlashga yordam beradi, bu esa kodning o'qilishi va texnik xizmat ko'rsatishni yaxshilaydi.