Pythonni mustaqil



Download 2,79 Mb.
bet90/109
Sana31.12.2021
Hajmi2,79 Mb.
#223336
1   ...   86   87   88   89   90   91   92   93   ...   109
Bog'liq
PYTHONNI MUSTAQIL O‘RGANAMIZ

Argumentli dekoratorlar



  • def decorator_maker():

print("Men dekoratorlar yarataman! Men faqatgina 1 marta: \


sen dekorator yaratishimni so`raganingdagina ishga tushaman")
def my_decorator(func):
print("Men dekoratorman! Men faqat bir marta: funksiyani \
dekoratsiyalashda ishga tushaman")
def wrapped():
print ("Men dekoratsiyalanayotgan funksiya atrofidagi “qobiq”.\n"
"Men har safar dekoratsiyalanayotgan funksiya \
chaqirilganda ishga tushaman.\n"
"Men dekoratsiyalanayotgan funksiya ishi \ natijasini chiqaraman.")
return func()
print("Men qobiqdagi funksiyani qaytaraman.")
return wrapped
print("Men dekoratorni qaytaraman.")
return my_decorator

114





  • # Endi dekorator yaratamiz. Bu bor yo'g'i yana bir funksiyaga murojaatdir.




  • new_decorator = decorator_maker()

Men dekoratorlar yarataman! Men faqatgina 1 marta: sen dekorator yaratishimni so`raganingdagina ishga tushaman.


Men dekoratorni qaytaraman.
>>>





  • def decorated_function():

print("Men – dekoratsiyalanayotgan funksiyaman.")




  • decorated_function = new_decorator(decorated_function)

Men dekoratorman! Men faqat bir marta funksiyani dekoratsiyalashda ishga tushaman.


Men qobiqdagi funksiyani qaytaraman.


  • # Endi esa, nihoyat funksiyani chaqiramiz:




  • decorated_function()

Men har safar dekoratsiyalanayotgan funksiya chaqirilganda ishga tushaman.


Men dekoratsiyalanayotgan funksiya ishi natijasini chiqaraman.
Men – dekoratsiyalanayotgan funksiyaman.
Quyidagi kodni dekoratorlar yordamida qayta yozib chiqamiz:



  • @decorator_maker()

def decorated_function():


print("Men - dekoratsiyalanayotgan funksiyaman.")
Men dekoratorlar yarataman! Men faqatgina 1 marta: sen dekorator yaratishimni so`raganingdagina ishga tushaman
Men dekoratorni qaytaraman.
Men dekoratorman! Men faqat bir marta funksiyani dekoratsiyalashda ishga tushaman. Men qobiqdagi funksiyani qaytaraman


  • decorated_function()

Men dekoratsiyalanayotgan funksiya atrofidagi “qobiq.


Men har safar dekoratsiyalanayotgan funksiya chaqirilganda ishga tushaman.
Men dekoratsiyalanayotgan funksiya ishi natijasini chiqaraman.
Men – dekoratsiyalanayotgan funksiyaman.

115

Dekoratorlar argumentlariga qaytamiz. Agar biz dekoratorlarni yaratish uchun yo‘l-yo‘lakay funk-siyalardan foydalanadigan bo‘lsak, u holda biz unga ixtiyoriy argumentlarni uzatishimiz mumkin, shunday emasmi?





  • def decorator_maker_with_arguments(decorator_arg1, decorator_arg2):

print("Men dekoratorlar yarataman va men quyidagi argumentlarni oldim:", decorator_arg1, decorator_arg2)


def my_decorator(func):
print("Men dekoratorman va sen bu argumentlarni menga uzata olding:", decorator_arg1, decorator_arg2)


  • dekorator argumentlarini funksiya argumentlari bilan adashtirmang! def wrapped(function_arg1, function_arg2):

print ("Men dekoratsiyalanayotgan funksiya atrofidagi qobiqman.\n"


"va men barcha argumantlarga murojaat qila olaman\n" "\t- va: {0} {1} dekoratoriga\n"
"\t- va: {2} {3} funksiyaiga\n"
"Endi kerakli argumentlarni keyingiga uzatishim mumkin"
.format(decorator_arg1, decorator_arg2, function_arg1, function_arg2))
return func(function_arg1, function_arg2) return wrapped
return my_decorator


  • @decorator_maker_with_arguments("²ÌÕÔÇ×Ë", "¿ÌÒËÕÔ")

def decorated_function_with_arguments(function_arg1, function_arg2):


print ("Men dekoratsiyalanayotgan funksiyaman va men faqat
o`z argumentlarimni bilaman: {0} "
" {1} ".format(function_arg1, function_arg2))
Men dekoratorlar yarataman va men quyidagi argumentlarni oldim:Leonard Sheldon Men dekoratorman va sen bu argumentlarni menga uzata olding: Leonard Sheldon


  • decorated_function_with_arguments("Radjesh", "Govard")

Men dekoratsiyalanayotgan funksiya atrofidagi qobiqman. va men barcha argumantlarga murojaat qila olaman


- va Leonard Sheldon dekoratoriga - va Radjesh Govard funksiyasiga
Endi kerakli argumentlarni keyingiga uzatishim mumkin
Men dekoratsiyalanayotgan funksiyaman va men faqat o`z argumentlarimni bilaman:
Radjesh Govard
Shunday qilib, biz dekoratorlarga, xuddi oddiy funksiyalar kabi, ixtiyoriy argumentlarni uzatishimiz mumkin ekan. Biz, zarur hollarda, *args va *kwargs orqali ochishlardan ham foydalanishimiz mumkin.

116




Download 2,79 Mb.

Do'stlaringiz bilan baham:
1   ...   86   87   88   89   90   91   92   93   ...   109




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
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