Pythonda decorator tushunchasi



Download 60,19 Kb.
Pdf ko'rish
bet4/4
Sana28.06.2022
Hajmi60,19 Kb.
#713056
1   2   3   4
Bog'liq
Decorator

argumentli_dekoratsiyalangan_funksiya(pandas, "Science", "Tools")
Natija:
Bu wrapper funksiyasi barcha o'zgaruvchilardan foydalanadi 
- argumentli_decoratordan: Pandas Numpy Scikit-learn
- Funksiya chaqiruvidan: Pandas Science Tools
va ularni dekoratsiya qilingan funksiyaga o'tkazadi
Bu dekoratsiyalangan funksiya va u faqat o'zining argumentlarini biladi: Pandas 
Science Tools
Ishga yurgiziluvchi decoratorlar
Ko'rib turganimizdek, dekoratorlar funktsiyalarni o'rab olishadi. Dastlabki 
funktsiya nomi, uning docstring va parametrlar ro'yxati wrapper yopilishi bilan 
yashiringan: Masalan, argumentli_dekoratsiyalangan_funksiya meta-
ma'lumotlariga kirishga harakat qilsak, biz wrapperni yopish metama'lumotlarini 
ko'ramiz. Bu ishga yurish paytida qiyinchilik tug'diradi.
print(argumentli_dekoratsiyalangan_funksiya.__name__)
Natija:
wrapper
print(argumentli_dekoratsiyalangan_funksiya.__doc__)
Natija:
Bu o'rovchi(wrapper) funskiya
Ushbu muammoni hal qilish uchun Python functools.wraps dekoratorini taqdim
etadi. Ushbu dekorator yo'qolgan metama'lumotlarni dekoratsiyalanmagan


funksiyadan dekoratsiyalangan closure ga ko'chiradi. Bu quyidagicha amalga
oshiriladi.
def uppercase_decorator(func):
@functools.wraps(func)
def wrapper():
return func().upper()
return wrapper
@uppercase_decorator
def say_hi():
"This will say hi"
return 'hello there'
print(say_hi())
Natija:
HELLO THERE
Say_hi metadatani tekshirganimizda, u endi paketning metama'lumotlarini emas, 
balki funktsiya metama'lumotlarini nazarda tutayotganini ko'ramiz.
print(say_hi.__name__)
print(say_hi.__doc__)
Natija:
say_hi
This will say hi
Dekoratorlarni aniqlashda har doim functools.wraps dan foydalanish maqsadga 
muvofiq va yaxshi amaliyotdir. Bu ishga yuritish paytida juda chalkashliklardan 
xalos qiladi.
Xulosa:
Dekoratorlar to'g'ridan-to'g'ri subklasslardan foydalanmasdan yoki bezatilayotgan 
funktsiya manba kodini o'zgartirmasdan funktsiya, metod yoki sinfning ish 
faoliyatini dinamik ravishda o'zgartiradilar. Pythonda dekoratorlardan foydalanish 
sizning kodingiz DRY(Don't Repeat Yourself-O'zingizni takrorlamang) bo'lishini 
ta'minlaydi. Dekoratorlarning bir nechta foydalanish holatlari mavjud:
Flask va Django kabi Python frameworklarida avtorizatsiya uchun
Jurnalizatsiya


Amalga oshirish vaqtini o'lchash
Sinxronizatsiya

Download 60,19 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish