Python Değişken Sayıda Parametre: Kwargs
Python'da değişken sayıda keyword arguments (anahtar kelime argümanları) almak için **kwargs kullanılır. **kwargs, bir fonksiyona kaç tane keyword argument (anahtar-değer çifti) gönderileceğini bilmediğimiz durumlarda kullanılır. Bu argümanlar bir sözlük (dictionary) olarak işlenir.
Temel Yapı
**kwargs ile bir fonksiyon tanımladığınızda, fonksiyon çağrılırken ona istediğiniz kadar keyword argument (anahtar-değer çifti) gönderebilirsiniz:
def fonksiyon_adi(**kwargs): # kwargs, bir sözlük olarak işlenir for anahtar, deger in kwargs.items(): print(f"{anahtar}: {deger}") -
**kwargs, değişken sayıda anahtar-değer çiftini bir sözlük içinde toplar. - Fonksiyonun içinde
kwargs.items()metodu ile bu anahtar-değer çiftlerine erişilebilir.
Örnek: Kullanımı
Aşağıdaki örnekte, bir kişiye ait farklı bilgileri keyword arguments olarak gönderip bu bilgileri yazdıran bir fonksiyon yazalım:
def kisi_bilgileri(**kwargs): for anahtar, deger in kwargs.items(): print(f"{anahtar.capitalize()}: {deger}") # Fonksiyona istediğimiz kadar keyword arguments gönderebiliriz kisi_bilgileri(isim="Ahmet", yas=30, meslek="Mühendis", sehir="İstanbul") Çıktı:
Isim: Ahmet Yas: 30 Meslek: Mühendis Sehir: İstanbul
ve Birlikte Kullanımı
Bir fonksiyonda hem *args hem de **kwargs kullanılabilir. *args pozisyonel argümanları, **kwargs ise keyword argümanlarını toplar. Ancak *args her zaman **kwargs'dan önce tanımlanmalıdır.
def bilgi_ver(*args, **kwargs): print("Pozisyonel argümanlar:", args) print("Keyword argümanlar:", kwargs) # Hem pozisyonel hem de keyword argümanlar gönderebiliriz bilgi_ver(1, 2, 3, isim="Ahmet", yas=30) Çıktı:
Pozisyonel argümanlar: (1, 2, 3) Keyword argümanlar: {'isim': 'Ahmet', 'yas': 30}
ile Varsayılan Parametreler
Fonksiyonlarda **kwargs ile birlikte varsayılan parametreler de kullanılabilir. Varsayılan parametreler her zaman **kwargs'tan önce tanımlanmalıdır.
def bilgi_ver(isim, **kwargs): print(f"İsim: {isim}") for anahtar, deger in kwargs.items(): print(f"{anahtar.capitalize()}: {deger}") # Varsayılan parametre ile birlikte keyword argümanlar gönderme bilgi_ver("Ahmet", yas=30, meslek="Mühendis", sehir="Ankara") Çıktı:
İsim: Ahmet Yas: 30 Meslek: Mühendis Sehir: Ankara
ile Sözlük Göndermek
Eğer bir sözlüğü **kwargs ile fonksiyona göndermek isterseniz, sözlüğün başına ** ekleyerek elemanlarını keyword arguments olarak gönderebilirsiniz.
def bilgi_yazdir(**kwargs): for anahtar, deger in kwargs.items(): print(f"{anahtar}: {deger}") bilgiler = {"isim": "Ayşe", "yas": 28, "meslek": "Doktor"} # Sözlük elemanlarını keyword arguments olarak fonksiyona gönderebiliriz bilgi_yazdir(**bilgiler) Çıktı:
isim: Ayşe yas: 28 meslek: Doktor
'ı Fonksiyon İçinde İşlemek
**kwargs'ı bir fonksiyonun içinde esnek bir şekilde kullanabilirsiniz. Örneğin, belirli bir anahtarın olup olmadığını kontrol edebilir ve ona göre işlem yapabilirsiniz.
def urun_ekle(**kwargs): if "fiyat" in kwargs: print(f"Ürün fiyatı: {kwargs['fiyat']} TL") else: print("Ürün fiyatı belirtilmedi") # Keyword arguments ile ürün bilgisi gönderme urun_ekle(urun_adi="Laptop", fiyat=5000) # Ürün fiyatı: 5000 TL urun_ekle(urun_adi="Tablet") # Ürün fiyatı belirtilmedi Özet
-
**kwargs, fonksiyona değişken sayıda keyword arguments göndermek için kullanılır. -
**kwargs, fonksiyon içinde bir sözlük olarak işlenir ve anahtar-değer çiftlerine erişilebilir. -
*argsve**kwargsbir arada kullanılabilir, ancak*argsher zaman önce gelir. - Sözlükleri
**kwargsile fonksiyona keyword arguments olarak gönderebilirsiniz.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Python Değişken Sayıda Parametre: Kwargs dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!