Python Python Fonksiyonlar 2026 Güncel

Python Değişken Sayıda Parametre: Kwargs

4 dk okuma süresi 612 görüntülenme 2024-09-08 4.9 (14 değerlendirme)

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.
  • *args ve **kwargs bir arada kullanılabilir, ancak *args her zaman önce gelir.
  • Sözlükleri **kwargs ile fonksiyona keyword arguments olarak gönderebilirsiniz.
Bu Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

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.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!