Args ve Kwargs: Python'da İşlevselliği Artıran Güçlü Araçlar

Python programlama dilinde, args ve kwargs terimleri, fonksiyonlara parametre iletmenin iki yaygın yöntemidir. Bu yöntemler, fonksiyonları daha esnek ve kullanışlı hale getirerek kodunuzu daha okunabilir ve yönetilebilir hale getirir.

args (Sınırsız Pozisyonel Argümanlar)

args terimi, fonksiyona belirli bir sırayla belirsiz sayıda argüman iletmenizi sağlar. Bu argümanlar, fonksiyon çağrısında virgülle ayrılır ve fonksiyon tanımında bir yıldız işareti (*) ile temsil edilir.

Python def topla(a, b, *args): """ Bu fonksiyon, ilk iki argümana ek olarak isteğe bağlı sayıda argüman alabilir. """ toplam = a + b for arg in args: toplam += arg return toplam sonuc = topla(1, 2, 3, 4, 5) print(sonuc) # 15 çıktı verir.  

Bu örnekte, topla fonksiyonu üç argüman alabilir: a, b ve *args. İlk iki argüman (a ve b) zorunludur, ancak *args isteğe bağlıdır. Fonksiyon çağrısında, topla fonksiyonuna beş argüman geçirilir: 1, 2, 3, 4 ve 5. Fonksiyon, ilk iki argümanı (a ve b) toplar ve ardından *args ile temsil edilen kalan argümanları bir döngü içinde toplar. Sonuç olarak, fonksiyon 15 değerini döndürür.

kwargs (Anahtar Kelime Argümanları)

kwargs terimi, fonksiyona anahtar kelime-değer çiftleri şeklinde argümanlar iletmenizi sağlar. Bu argümanlar, fonksiyon çağrısında anahtar kelime ve değerleri virgülle ayırarak belirtilir ve fonksiyon tanımında çift yıldız işareti (**) ile temsil edilir.

Python def selamla(isim, **kwargs): """ Bu fonksiyon, bir isim argümanı ve isteğe bağlı anahtar kelime-değer argümanları alabilir. """ mesaj = f"Merhaba {isim}" for anahtar, deger in kwargs.items(): mesaj += f", {anahtar} = {deger}" print(mesaj) selamla("Ali", meslek="Öğretmen", sehir="Ankara")  

Bu örnekte, selamla fonksiyonu iki argüman alabilir: isim ve **kwargs. isim argümanı zorunludur, ancak **kwargs isteğe bağlıdır. Fonksiyon çağrısında, selamla fonksiyonuna iki anahtar kelime-değer çifti geçirilir: meslek="Öğretmen" ve sehir="Ankara". Fonksiyon, isim argümanını mesajda kullanır ve ardından **kwargs ile temsil edilen kalan anahtar kelime-değer çiftlerini bir döngü içinde işler. Sonuç olarak, fonksiyon "Merhaba Ali, meslek = Öğretmen, sehir = Ankara" mesajını yazdırır.

args ve kwargs Birlikte Kullanma

args ve kwargs'ı birlikte kullanarak, fonksiyonlarınıza daha fazla esneklik katabilirsiniz. Örneğin, bir fonksiyon, belirli sayıda zorunlu argüman, isteğe bağlı pozisyonel argümanlar ve isteğe bağlı anahtar kelime-değer argümanları alabilir.

Python def hesapla(a, b, *args, **kwargs): """ Bu fonksiyon, iki zorunlu argüman, isteğe bağlı pozisyonel argümanlar ve isteğe bağlı anahtar kelime-değer argümanları alabilir. """ sonuc = a + b for arg in args: sonuc += arg for anahtar, deger in kwargs.items(): if anahtar == "islem": if deger == "carpma": sonuc *= deger elif deger == "bolme": sonuc /= deger else: raise ValueError(f"Geçersiz işlem: {deger}") return sonuc sonuc = hesapla(2, 3, 4, 5, is