Funksiya parametrlari
Download 7.14 Kb.
|
Moslashuvchan funksiya
- Bu sahifa navigatsiya:
- Funksiya parametrlari
- Amaliyot
Moslashuvchan funksiya. Reja: 1. *args usuli 2. *kwargs usuli 3. lambda() funksiya Funksiya parametrlariAMALIYOT
Funksiya parametrlariAMALIYOT
Funksiya parametrlariMOSLASHUVCHAN FUNKSIYA (`*args`, `**kwargs`) `*args` va `**kwargs` bilan tanishamiz MOSLASHUVCHAN FUNKSIYA Agar funksiyangiz bir nechta argument qabul qilishi kerak bo'lsa-yu, lekin siz argumentlar sonini aniq bilmasangiz, Pythonda istalgancha qiymat qabul qiluvchi funksiya yaratish imkoniyati bor. *args USULI Agar funksiya qabul qiladigan parametrlar soni noaniq bo'lsa, va parametrlar yagona qiymatlar ko'rinishida uzatilsa, funksiya yaratishda argumentdan avval yulduzcha qo'yiladi (*arguments). Quyidagi misolni ko'raylik. summa()nomli funksiyamiz istalgancha sonlarni qabul qilib oladi, va ularning yi'gindisi hisoblaydi: Funksiya parametrlariprint(summa(1,2,3,4,5)) def summa(*sonlar): """Kiritilgan sonlar yig'indisini hisoblaydigan funksiya""" yigindi = 0 for son in sonlar: yigindi += son return yigindi Bu funksiyani istalgancha parametr bilan chaqirish mumkin: print(summa(1,2)) Funksiya parametrlari26 *args usulida, bacha uzatilgan parametrlar (bir dona bo'lsa ham) funksiya ichida o'zgarmas ro'yxatga (tuple) joylanadi. Bundan kelib chiqib, yuqoridagi funksiyamizni yanada soddalashtirib yozishimiz mumkin: Agar funksiya bir nechta argument qabul qilsa, `*args` argument doim oxirida yoziladi: def summa(x,y,*sonlar): """Kiritilgan sonlar yig'indisini hisoblaydigan funksiya""" return x+y+sum(sonlar) Yuqoridagi funksiyamiz kamida 2 ta parametr qabul qiladi (x va y) va birinchi ikki argumentlar majburiy argumentlardir. Funksiya parametrlari**kwargs USULI Agar funksiyaga kalit so'z - qiymat ko'rinishidagi argumentlarni uzatish talab qilinsa, va bunday parametrlar soni noma'lum bo'lsa, argument oldidan ikkita yulduzcha qo'yiladi (**kwargs). **kwargs — keyword arguments (kalit so'zli argumentlar) def avto_info(kompaniya,model,**malumotlar): """Avto haqidagi ma'lumotlarni lug'at ko'rinishdia qaytaruvchi funksiya""" malumotlar['kompaniya']=kompaniya malumotlar['model']=model return malumotlar Funksiya parametrlari Yuqoridagi funksiyamiz kompaniya va model degan ikki qiymatni qabul qiladi, undan keyin esa funksiyaga istalgancha parametr uzatish mumkin. Bunday funksiyaga parametrlar kalitso'z=qiymat ko'rinishida uzatiladi. Funksiya ichida avval foydalanuvchi kiritgan qo'shimcha qiymatlardan iborat malumotlar deb nomlangan lug'at shakllantiriladi. Undan keyin esa majburiy parametrlarni lug'atga qo'shamiz.avto1 = avto_info("GM", "malibu", rang='qora', yil=2018) avto2 = avto_info("Kia", "K5", rang='qizil', narh=35000) print(avto2) Lambda funksiya Lambda funksiyasi kichik anonim funksiya hisoblanadi. Unda istalgancha argument qatnashishi mumkin va barchasi bir ifodada yoziladi. Hozir kiritilgan sonni 10 ga oshiradigan lambda funksiya hosil qilamiz:x = lambda a: a + 10 print(x(2)) #12 Lambda funksiya Endi ikki va uch argumetli lambda funksiyalarini tuzami. Avvalgisi ikki sonning o’zaro ko’paytmasini, keyingisi esa barcha sonlar yig’indisini topadi.x = lambda a, b : a*b print(x(5,6)) #30 y = lambda a, b, c : a+b+c print(y(7,9,5)) #21 Nega lambda funksiya ishlatamiz ? Lambda fuksiyalarni funksiya ichida boshqa bir anonim funksiya sifatida ishlatish qulay. Masalan, bir argumentli funksiya bor va uning argumenti noma’lum bir songa ko’payadi. Shu funksiyani lambda funksiya yordamida istalgan sonni ikkilantiradigan va uchlantiradiga funksiyaga aylantiramiz.def myfunc(n): return lambda a: a*n ikkilantir = myfunc(2) uchlantir = myfunc(3) print(ikkilantir(5)) #10 print(uchlantir(5)) #15 Amaliyot
E’tiboringiz uchun raxmat!Download 7.14 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling