Reja: Moslashuvchan funksiya? *args usuli kwargs usuli moslashuvchan funksiya
Download 6.11 Kb.
|
1-vazifa Sanjar
Mavzu: Moslashuvchan Funksiya(*args, **kwargs) Tayyorladi: Saydaliyev Sanjar Reja: 1. Moslashuvchan funksiya? 2. *args USULI 3. **kwargs USULI 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 *args Pythonda bir funksiya nomidan keyin keladigan bir argumentdir. Bu argument, funksiyaga olib kelinishi mumkin bo'lgan barcha argumentlarni yig'ish uchun ishlatiladi. *args o'zgaruvchisi tuple yoki ro'yxatga o'girilgan elementlarni qabul qiladi. Quyidagicha misol berish mumkin: def sum_numbers(*args): total = 0 for number in args: total += number return total Bu funksiya *args argumentini qabul qiladi va barcha argumentlarni yig'indisini hisoblaydi. Misol uchun, sum_numbers(1, 2, 3, 4, 5) ifodasi funksiya tomonidan qabul qilinadi va 15 natijasi qaytariladi. Bu usul yordamida funksiyalar istalgan soni argument qabul qilishiga imkon beradi. *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: def sum_numbers(*args): return sum(args) print(sum_numbers(4,5,6,7)) Natija: 22 Agar funksiya bir nechta argument qabul qilsa, *args argument doim oxirida yoziladi: def sum_numbers(x,y,*sonlar): return x+y+sum(sonlar) Yuqoridagi funksiyamiz kamida 2 ta parametr qabul qiladi (x va y) va birinchi ikki argumentlar majburiy argumentlardir. print(sum_numbers(2)) Natija: TypeError: summa() missing 1 required positional argument: 'y' **kwargs **kwargs Pythonda bir funksiya nomidan keyin keladigan bir argumentdir. Bu argument, funksiyaga olib kelinishi mumkin bo'lgan barcha nomli argumentlar (kalitlar) va ularning qiymatlari to'plamini yig'ish uchun ishlatiladi. **kwargs o'zgaruvchisi lug'at (dictionary) ko'rinishida nom va qiymatlarni qabul qiladi. **kwargs — keyword arguments (kalit so'zli argumentlar) def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") Bu funksiya **kwargs argumentini qabul qiladi va lug'at ko'rinishidagi argumentlarni (kalit va qiymatlar) chiqaradi. Misol uchun, print_info(name="John", age=30, city="New York") ifodasi funksiya tomonidan qabul qilinadi va quyidagi chiqaruv natijasi hosil qilinadi: **kwargs yordamida, funksiyalarga lug'at (dictionary) ko'rinishidagi argumentlarni o'tkazish mumkin bo'lgani uchun, funksiya nomidan keyingi argumentlar sonini aniqlashga majburiyati yo'q. Misol uchun, print_info() funksiyani chaqirish uchun, hech qanday argument ko'rsatish zarur emas. Lekin, print_info(name="John") yoki print_info(city="New York", age=30) funksiyalarni chaqirish mumkin. Shunday qilib, **kwargs argumenti funksiyalarga istalgan soni nomli argument qabul qilishga imkon beradi va lug'at (dictionary) ko'rinishidagi ma'lumotlarni olib ishlay oladi. name: John age: 30 city: New York **kwargs Pythonning jadvallashgan funksiyalarida, funksiya nomidan keyin keladigan nomli argumentlarni (kalitlar va qiymatlar to'plami) ko'rsatish uchun ishlatiladi. Bu argument nomi, lug'at (dictionary) ko'rinishidagi kalitlarni o'z ichiga oladi. **kwargs va *args o'zgaruvchilari birlikda ishlatilishi mumkin. *args argumenti, bitta ro'yxatni qabul qiladi, **kwargs argumenti esa lug'at (dictionary) ko'rinishidagi kalit va qiymatlarni qabul qiladi. Misol uchun:Bu funksiya ro'yxat ko'rinishidagi barcha argumentlarni qabul qiladi va ularni chop etadi. Misol uchun, my_func(1, 2, 3, name="john", age=30) ifodasi funksiyani chaqirish uchun ishlatiladi. Ushbu ifoda funksiyaga bitta ro'yxat (1, 2, 3) va lug'at ko'rinishidagi argumentlarni olib keladi ({'name': 'john', 'age': 30}), va quyidagi chiqaruv natijasi hosil qilinadi:**kwargs yordamida, funksiya nomidan keyin ko'rsatiladigan argumentlarni lug'at ko'rinishida qabul qilish mumkin bo'lgani uchun, funksiya nomidan keyin keladigan argumentlar sonini bilishga majburiyati yo'q. Shunday qilib, **kwargs argumenti funksiyalarga qulaylik keltiradi va odatda keng ko'lamli funksiyalarda ishlatiladi. Download 6.11 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling