Python'da *args va **kwargs

Odatda funksiya aniq sonda argument oladi. Lekin ba’zan necha ta argument kelishini oldindan bilmaysiz — masalan istalgancha sonni qo’shadigan funksiya. Buning uchun *args va **kwargs bor.

*args — nomsiz argumentlar to’plami

*args funksiyaga istalgancha nomsiz argument uzatishga imkon beradi. Ular ichkarida kortej sifatida yig’iladi:

Python

yigindi ni istalgancha son bilan chaqirish mumkin — hammasi args ichiga tushadi.

**kwargs — nomli argumentlar lug’ati

**kwargs esa nomli argumentlarni lug’at sifatida yig’adi:

Python

Amaliy mashq

Moslashuvchan funksiyalar yozing:

  1. *args bilan istalgancha sonning o’rtachasini hisoblovchi funksiya yozing;
  2. uni 2 ta, so’ng 5 ta son bilan chaqiring;
  3. **kwargs bilan talaba ma’lumotini qabul qiluvchi funksiya yozing;
  4. args ning turini type() bilan tekshiring — kortejmi yoki ro’yxat?
  5. ikkalasini bitta funksiyada birga ishlatib ko’ring.

Nomli argumentni nomsizdan oldin yozsangiz nima bo’ladi — tartib muhimmi?

Qisqacha xulosa

  • *args — funksiyaga istalgancha nomsiz argument uzatadi (kortej).
  • **kwargs — istalgancha nomli argument uzatadi (lug’at).
  • Nomlari shart emas — * va ** belgilari muhim.
  • Necha argument kelishi oldindan noma’lum bo’lganda ishlatiladi.
  • Dekoratorlarda argumentlarni o’tkazish uchun keng qo’llanadi.

Keyingi darsda closure — funksiya ichidagi funksiya va uning “eslab qolishi”ni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi