Bir Python işlevinin kabul edebileceği üç tür argüman vardır: standart, değişken (*args) ve anahtar kelime (**kwargs). Standart argümanlar en basit olanlardır ancak işlevsellikleri sınırlıdır. Öte yandan *args ve **kwargs, değişken sayıda girişi kabul ederek işlevlerinizi daha esnek hale getirmenizi sağlar.

Seçtiğiniz argüman iletme türü, işlevinizin doğasına ve kendi tercih ettiğiniz programlama stiline bağlıdır.

Python'da Temel Fonksiyonlar

Python işlevlerinde iki değişken argümanın nasıl çalıştığını anlamak için, ilk etapta neden var olduklarını anlamak önemlidir. Basit bir işlev, aşağıdaki gibi sabit sayıda anonim argüman bildirir:

tanımek numara(a, b, c):
dönüş a + b + c

Bu işlev iyi çalışıyor, ancak iyileştirme için yer var. En büyük sorun, yalnızca iki bağımsız değişkeni ele almasıdır, bu nedenle yalnızca iki sayı toplayabilir. İki veya dört sayı eklemek isterseniz ne olur? Bu fonksiyon bunu yapmanıza izin vermeyecektir. Fonksiyonun kabul ettiğinden daha fazla veya daha az argüman iletmek, TypeError'a yol açacaktır.

instagram viewer

Elbette, farklı sayıda argümanı kabul etmek için daha fazla işlev oluşturabilirsiniz. Ancak bu uygunsuz ve hiç iyi ölçeklenmeyecek. Ayrıca, her yeni sayıda girişi işlemek istediğinizde yeni bir işlev oluşturmanız gerekecektir.

İşte burada değişken argümanlar ve anahtar kelime argümanları devreye girer. *args ve **kwargs kullanarak, değişken sayıda girdi alabilen esnek işlevler tanımlayabilirsiniz.

Python'da *args nedir?

Python'da *args'ın arkasındaki ana fikir, işlevinize değişken sayıda girdi iletmenize izin vermektir. Bu, çeşitli uygulamalarda kullanışlıdır. Örneğin, kullanıcıya iki veya daha fazla sayı ekleme ve toplamı döndürme yeteneği vermek istediğiniz bir hesap makinesi programı düşünün.

Args'ın yalnızca bir değişken adı olduğuna dikkat edin; önemli olan * dır. * karakterini dahil ettiğiniz sürece, değişken bağımsız değişkeniniz için geçerli herhangi bir ad kullanabilirsiniz.

*args Nasıl Kullanılır

Değişken sayıda girdi almak için addnum işlevini aşağıdaki gibi değiştirebilirsiniz:

tanımek numara(*argümanlar):
toplam = 0

için sayı içinde argümanlar:
toplam = toplam + sayı

dönüş Toplam

Yukarıdaki kod parçası for döngüsü kullanır sağlanan girişleri yinelemek için.

Daha sonra değişken argümanlarla addnum işlevini çağırabilirsiniz ve hata vermeden çalışacaktır:

Yazdır(ek sayı(10, 1, 12, 12, 4, 54, 5)) ## 98 döndürür
Yazdır(ek sayı(14, 54, 5)) # 73 döndürür
Yazdır(ek sayı(10, 5)) # 15 döndürür

Python'da **kwargs nedir?

Hem *args hem de **kwargs, fonksiyonlara değişken sayıda girdi iletmemize izin verirken, ikincisi, anahtar kelime argümanlarına özeldir. Bilmiyorsanız, anahtar sözcük bağımsız değişkenleri, yalnızca bir adı olan bağımsız değişkenler için süslü adlardır.

**kwargs ile ilgili bir başka benzersiz şey, Python'un değeri bir sözlük olarak temsil etmesidir.

**kwargs nasıl kullanılır

*args gibi, çift yıldız önemli olan kısımdır; parametre adı olarak herhangi bir kelimeyi kullanabilirsiniz. Python'da **kwargs'ın nasıl kullanılacağına dair bir örnek:

tanımhaftalık_attendance(**hafta içi):
toplam_katılımcılar = 0

içinkatılımcılariçindehafta içi.değerler():
total_attendees = total_attendees + katılımcılar

dönüş total_attendees

Yazdır(haftalık_attendance (pazartesi = 265, salı = 698, çarşamba = 365, perşembe = 463, cuma = 234)) # 2025 döndürür
Yazdır(haftalık_attendance (pazartesi = 265, cuma = 234)) # 499 döndürür
Yazdır(haftalık_attendance (çarşamba = 365, perşembe = 463, cuma = 234)) # 1062 döndürür

Yukarıdaki kod parçacığı da bir for döngüsü kullanır, ancak bu sefer Python'un yerleşik değerleri() yöntemiyle. Bu yöntem, sözlükteki tüm değerlerin bir görünüm nesnesini döndürür. değerleri() yöntemi şunları yapmanızı sağlar: Python sözlüğünde dolaşmak uğraşmadan.

Python İşlevlerinizi Esnek Hale Getirmek için Değişken Argümanları Kullanın

İşlev bağımsız değişkenleri kullanışlıdır, ancak bazı işlevler değişken sayıda bağımsız değişkeni kabul etmekten yararlanabilir. Adlandırılmış anahtar kelime bağımsız değişkenleri, kodunuzu daha okunabilir ve kullanımı daha kolay hale getirebilir. Python'un *args ve **kwargs argümanlarını benimsemelisin. Kullanımı oldukça basittir ve onlarla birlikte işlevlerinizi ve programlarınızı daha esnek hale getirebilirsiniz.

Yukarıdaki adımları ve kod parçacıklarını izleyerek, artık işlevleriniz için değişken anahtar sözcük ve anahtar sözcük olmayan bağımsız değişkenler kullanabileceğinizi umuyoruz.