Pozitsion va nomli argumentlar


*args va **kwargs dan qanday foydalanish kerak



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

*args va **kwargs dan qanday foydalanish kerak



Shunday qilib, biz bilamizki, Python-dagi "yulduzcha" operatori ob'ektlardan ob'ektlarni tashkil etuvchi elementlarni "chiqarib tashlashga" qodir. Funktsiya parametrlarining ikki turi mavjudligini ham bilamiz. Siz allaqachon bu haqda o'ylab ko'rgan bo'lishingiz mumkin, lekin men, ehtimol, bu haqda sizga aytib beraman. Ya'ni, *args"argumentlar" (argumentlar) ning qisqartmasi va **kwargs "kalit so'z argumentlari" (nomli argumentlar) uchun qisqa.

Ushbu konstruktsiyalarning har biri mos turdagi argumentlarni ochish uchun ishlatiladi, bu funksiyalarni o'zgaruvchan uzunlikdagi argumentlar ro'yxati bilan chaqirish imkonini beradi. Misol uchun, testda talaba tomonidan to'plangan natijalarni ko'rsatadigan funksiya yarataylik:
def printScores(student, *scores):
print(f"Student Name: {student}")
for score in scores:
print(score)
printScores("Jonathan",100, 95, 88, 92, 99)
"""
Student Name: Jonathan
100
95
88
92
99
"""

dan foydalanmadim *args. Buning o'rniga menda - *scores. Bu yerda xatolik bormi? Bu erda xatolik yo'q. Gap shundaki, "args" bu argumentlarni belgilash uchun ishlatiladigan belgilar to'plamidir. Bu erda eng muhim narsa operatordir *. Va undan keyin keladigan narsa alohida rol o'ynamaydi. Foydalanish orqali *funksiya chaqirilganda unga uzatilgan narsaga asoslangan pozitsion argumentlar roʻyxatini yaratdik.

Biz bilan shug'ullanganimizdan so'ng , *argstushunish bilan bog'liq **kwargsmuammolar bo'lmasligi kerak . Yana, ism muhim emas. Asosiysi, ikkita belgi **. Ularning yordami bilan funktsiya chaqirilganda unga uzatiladigan nomlangan argumentlarni o'z ichiga olgan lug'at yaratiladi.
def printPetNames(owner, **pets):
print(f"Owner Name: {owner}")
for pet,name in pets.items():
print(f"{pet}: {name}")
printPetNames("Jonathan", dog="Brock", fish=["Larry", "Curly", "Moe"], turtle="Shelldon")
"""
Owner Name: Jonathan
dog: Brock
fish: ['Larry', 'Curly', 'Moe']
turtle: Shelldon
"""

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ə