Fonksiyonlar, modüler ve yeniden kullanılabilir Python kodunun temel taşıdır. Bu öğretici, fonksiyon argümanlarının inceliklerine dalarak, daha temiz, daha verimli ve daha az hataya açık programlar yazmanız için gereken bilgiyi size sunar.
İçindekiler
- Pozisyonel Argümanlar
- Anahtar Kelime Argümanları
- Varsayılan Argümanlar
- Değişken Sayıda Argüman (*args ve **kwargs)
- Değiştirilebilir mi Değiştirilemez mi Argümanlar
Pozisyonel Argümanlar
Pozisyonel argümanlar en basit formdur. Fonksiyona tanımlandıkları sırayla geçirilirler. Sıra kesinlikle uygulanır; fonksiyon çağrısı sırasında argümanların sırasının eşleşmemesi yanlış sonuçlara veya hatalara yol açacaktır.
def greet(name, greeting):
print(f"{greeting}, {name}!")
greet("Alice", "Hello") # Doğru sıra
greet("Hello", "Alice") # Yanlış sıra - "Alice, Hello!" yazdıracak
Anahtar Kelime Argümanları
Anahtar kelime argümanları, bir fonksiyonu çağırırken argüman adını belirtmenizi sağlar. Bu, özellikle birçok parametresi olan fonksiyonlarla uğraşırken kodunuzu daha okunabilir ve daha az hataya açık hale getirir. Anahtar kelime argümanlarının sırası önemli değildir.
def describe_pet(animal_type, pet_name, age=None):
print(f"n{animal_type}'ım var.")
print(f"{animal_type}'imin adı {pet_name.title()}.")
if age:
print(f"{animal_type}'im {age} yaşında.")
describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='willie', animal_type='dog', age=5)
Varsayılan Argümanlar
Varsayılan argümanlar, fonksiyon parametreleri için bir yedek değer sağlar. Fonksiyon çağrıldığında bir değer sağlanmazsa, varsayılan değer kullanılır. Varsayılan argümanlar, fonksiyon tanımında her zaman varsayılan olmayan argümanlardan sonra yerleştirilmelidir.
def power(base, exponent=2):
return base ** exponent
print(power(3)) # Çıktı: 9 (üs 2 olarak varsayılır)
print(power(3, 3)) # Çıktı: 27
Değişken Sayıda Argüman (*args ve **kwargs)
`*args` ve `**kwargs` sözdizimi, sırasıyla değişken sayıda pozisyonel ve anahtar kelime argümanını işlemenizi sağlar. `*args` pozisyonel argümanları bir tuple’a, `**kwargs` ise anahtar kelime argümanlarını bir sözlüğe toplar.
def my_function(*args, **kwargs):
print("Pozisyonel argümanlar:", args)
print("Anahtar kelime argümanlar:", kwargs)
my_function(1, 2, 3, name="Alice", age=30)
Değiştirilebilir mi Değiştirilemez mi Argümanlar
Fonksiyon argümanlarıyla çalışırken değiştirilebilirliği anlamak çok önemlidir. Değiştirilemez nesneler (sayılar, dizeler, tuple’lar gibi) bir fonksiyon içinde değiştirilemez; yapılan herhangi bir değişiklik yeni bir nesne oluşturur. Değiştirilebilir nesneler (listeler, sözlükler gibi) yerinde değiştirilebilir ve fonksiyonun dışındaki orijinal nesneyi etkiler. Bu, dikkatlice ele alınmazsa beklenmedik yan etkilere yol açabilir.
def modify_list(my_list):
my_list.append(4) # Orijinal listeyi değiştirir
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # Çıktı: [1, 2, 3, 4] (orijinal liste değiştirildi)
def modify_string(my_string):
my_string += "!!!" # Yeni bir dize oluşturur
my_string = "Merhaba"
modify_string(my_string)
print(my_string) # Çıktı: Merhaba (orijinal dize değişmedi)
Bu kapsamlı kılavuz, Python’da fonksiyon argümanlarıyla çalışma konusunda sağlam bir temel oluşturur. Bu kavramları öğrenmek, kodunuzun kalitesini ve sürdürülebilirliğini önemli ölçüde artıracaktır.