Pozitsion va nomli argumentlar


*args va **kwargs dan qanday foydalanish kerak


Download 25.45 Kb.
bet2/4
Sana24.03.2023
Hajmi25.45 Kb.
#1293508
1   2   3   4
Bog'liq
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
"""

Download 25.45 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling