Pozitsion va nomli argumentlar


Funktsiyani chaqirishda *args va **kwargs dan foydalanish



Yüklə 25,45 Kb.
səhifə4/4
tarix16.03.2023
ölçüsü25,45 Kb.
#102647
1   2   3   4
args va kwargs

Funktsiyani chaqirishda *args va **kwargs dan foydalanish


Funktsiyani *args va **kwargs yordamida chaqirishni o'ylab ko'ring. Aytaylik, bizda shunday kichik funksiya bor:
def test_args_kwargs ( arg1 , arg2 , arg3 ):
chop etish ( "arg1:" , arg1 )
chop etish ( "arg2:" , arg2 )
chop etish ( "arg3:" , arg3 )
Biz unga argumentlarni yuborish uchun *args yoki **kwargs dan foydalanishimiz mumkin. Buni qanday qilamiz:
# Avval *args bilan
>>> args = ( "ikki" , 3 , 5 )
>>> test_args_kwargs ( * args )
arg1 : ikkita
arg2 : 3
arg3 : 5
# Endi **kwargs bilan:
>>> kwargs = { "arg3" : 3 , "arg2" : "ikki" , "arg1" : 5 }
>>> test_args_kwargs ( ** kwargs )
arg1 : 5
arg2 : ikkita
arg3 : 3

*args, **kwargs va rasmiy parametrlardan qanday foydalanish kerak


Agar funktsiyada uchta usuldan foydalanmoqchi bo'lsangiz, unda tartib quyidagicha bo'lishi kerak:
some_func ( fargs , * args , ** kwargs )

Ulardan qachon foydalanish kerak?


Hamma narsa sizning ehtiyojlaringizga bog'liq. *args va **kwargsning eng keng tarqalgan qo'llanilishi dekorativlarni yozishda (boshqa bobda dekorativlar haqida batafsilroq). Bundan tashqari, ushbu texnikani "maymun yamoqlari" uchun ishlatish mumkin. "Maymun yamoq" deganda dasturni bajarish jarayonida kodni o'zgartirish tushuniladi. Aytaylik, bizda API ga kiradigan va javob ma'lumotlarini qaytaradigan usulga ega sinf mavjud . get_infoUshbu usulni sinab ko'rish uchun biz API chaqiruvini almashtirishimiz va ma'lum test ma'lumotlarini sun'iy ravishda qaytarishimiz mumkin. Masalan:
ba'zi sinflarni import qilish
def get_info ( self , * args ):
"test ma'lumotlarini" qaytarish
ba'zi sinf . get_info = get_info
Yüklə 25,45 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə