Python'da keyword arguments (anahtar kelime argümanları), bir fonksiyona argümanları parametre isimleriyle birlikte göndermeye olanak sağlar. Bu sayede, fonksiyon çağrılırken hangi değerin hangi parametreye ait olduğunu açıkça belirtmiş oluruz. Keyword arguments kullanmanın en büyük avantajı, parametrelerin sırasını önemsemeden fonksiyona değerler gönderebilmektir.
Temel Yapı
Keyword arguments, fonksiyon çağrılırken şu şekilde yazılır:
def fonksiyon_adi(parametre1, parametre2):
# Fonksiyon işlemleri
pass
# Keyword arguments kullanarak fonksiyonu çağırma
fonksiyon_adi(parametre1=deger1, parametre2=deger2)
Örnek: Keyword Arguments Kullanımı
def kisi_bilgileri(isim, yas, sehir):
print(f"İsim: {isim}, Yaş: {yas}, Şehir: {sehir}")
# Fonksiyonu keyword arguments kullanarak çağırabiliriz
kisi_bilgileri(isim="Ahmet", yas=25, sehir="Ankara")
# Çıktı: İsim: Ahmet, Yaş: 25, Şehir: Ankara
# Parametrelerin sırasını değiştirebiliriz, sonuç aynı olur
kisi_bilgileri(sehir="İstanbul", yas=30, isim="Ayşe")
# Çıktı: İsim: Ayşe, Yaş: 30, Şehir: İstanbul
Varsayılan Parametrelerle Birlikte Kullanım
Keyword arguments, varsayılan parametrelerle birlikte kullanıldığında da oldukça faydalıdır. Varsayılan değer verilen bir parametre, keyword arguments ile geçildiğinde bu varsayılan değeri değiştirir.
def selamla(isim, mesaj="Merhaba"
):
return f"{mesaj}, {isim}!"
# 'mesaj' parametresi verilmediği için varsayılan değer kullanılacak
print(selamla(isim="Ahmet")) # Çıktı: Merhaba, Ahmet!
# 'mesaj' parametresi keyword arguments ile değiştirildi
print(selamla(isim="Ayşe", mesaj="Selam")) # Çıktı: Selam, Ayşe!
**kwargs
(Arbitrary Keyword Arguments)
Fonksiyonlar, belirli sayıda keyword argument yerine, değişken sayıda keyword argument alabilir. Bu durumda **kwargs
kullanılır. **kwargs
, fonksiyona birden fazla anahtar-değer çifti gönderilmesine olanak sağlar. kwargs
, bir sözlük (dictionary) olarak fonksiyon içinde işlenir.
**kwargs
ile Örnek:
def kisi_bilgileri(**kwargs):
for anahtar, deger in kwargs.items():
print(f"{anahtar}: {deger}")
# Fonksiyona istediğimiz kadar keyword arguments gönderebiliriz
kisi_bilgileri(isim="Ahmet", yas=30, sehir="İstanbul", meslek="Mühendis")
Çıktı:
isim: Ahmet yas: 30 sehir: İstanbul meslek: Mühendis
Burada kwargs
, bir sözlük gibi çalışır ve her anahtar-değer çifti döngüyle işlenebilir.
Keyword Arguments ve Pozisyonel Argümanlar
Pozisyonel argümanlar (yani sırasıyla verilen argümanlar) ile keyword arguments birlikte kullanılabilir, ancak pozisyonel argümanlar her zaman keyword arguments'tan önce gelmelidir. Aksi takdirde Python hata verecektir.
Doğru kullanım:
def kisi_bilgileri(isim, yas, sehir):
print(f"İsim: {isim}, Yaş: {yas}, Şehir: {sehir}")
# Pozisyonel ve keyword argümanları birlikte kullanma
kisi_bilgileri("Ahmet", yas=25, sehir="Ankara")
Yanlış kullanım (hata verir):
kisi_bilgileri(isim="Ahmet", 25, sehir="Ankara")
# SyntaxError: positional argument follows keyword argument
Özet:
- Keyword arguments ile fonksiyon çağrılırken parametre isimleriyle birlikte değerler atanır, bu da parametrelerin sırasını önemsemeden çağrı yapmayı sağlar.
- Keyword arguments, varsayılan parametrelerle birlikte kullanılabilir ve bu sayede varsayılan değeri değiştirebilirsiniz.
-
**kwargs
, fonksiyonlara değişken sayıda keyword arguments göndermek için kullanılır ve bunlar sözlük olarak işlenir.