Bloğa geri dön

Kodunuzda *args ve **kwargs Parametrelerini Kullanmak: Bir Python 3 Eğitimi

Kodunuzda *args ve **kwargs Parametrelerini Kullanmak: Bir Python 3 Eğitimi

Giriş

Python dünya çapında en popüler programlama dillerinden biridir. Python'da parametreler, fonksiyon tanımlarının bir parçasıdır. Bir fonksiyon için belirli argümanlar belirtmenizi sağlarlar. Argüman, fonksiyon tarafından kabul edilebilir ve uygulanabilir.

Ancak, kodlama sırasında kodunuzla tam olarak hangi kullanım durumlarının uygulanabileceğini bilmeniz mümkün değildir. Bu nedenle, gelecekteki programcılar ve programınızın kullanıcıları adına, bir fonksiyona değişken sayıda argüman iletmek tavsiye edilir. Bunu yapmak için özel parametreler kullanmalısınız. Bunlar: *args ve **kwargs. Bu öğreticide, learn all about the *args ve **kwargs Python parametreleri hakkında her şeyi öğreneceğiz. Ayrıca argümanları nasıl sıralayacağımızı ve bunları fonksiyon çağrılarında nasıl uygulayacağımızı da öğreneceğiz.

Gereksinimler

Öğreticideki adımları takip edebilmek için hazırlamanız gereken bazı gereksinimler vardır. İlk olarak, sunucunuzda çalışır durumda bir programlama ortamıyla birlikte Python 3'ün kurulu olması gerekir. Ayrıca kendi işletim sisteminiz için ilgili programın kurulu olması gerekir (Ubuntu, CentOS, Debian vb.).

*args Nedir ve Nasıl Çalışır?

İlk olarak *args parametresinin nasıl çalıştığını anlayarak başlayalım. Parametrenin tek yıldızlı versiyonu, fonksiyonlara anahtar kelimesiz, değişken uzunlukta argüman listeleri göndermek için kullanılır. Yıldız işaretinin bu parametredeki en kritik unsur olduğunu unutmayın.

Daha iyi anlamak için bir örneği ele alalım. Aşağıda, kodunuzda bulabileceğiniz, iki argüman kullanan tipik bir fonksiyon yer almaktadır:

Gördüğünüz gibi, yukarıdaki fonksiyondaki argümanlarımız x ve y. Fonksiyonu çağırırken, x ve y değerlerine karşılık gelen sayıları kullanacaksınız. Diyelim ki sırasıyla 5 ve 4 tam sayılarını x ve y için geçiriyoruz:

Şimdi kodu çalıştırabiliriz:

Alacağımız çıktı aşağıdaki gibi olacaktır:

Çıktı, 5 ve 4 tam sayılarının çarpıldığını göstermektedir. Bu, multiply(x, y) fonksiyonunun çalıştığı anlamına gelir.

Şimdi, sadece iki sayı yerine nihayetinde üç sayıyı çarpmak istediğimizi varsayalım. Maalesef, yukarıdaki fonksiyona fazladan bir sayı eklemek size şöyle bir hata verecektir:

Bu nedenle, daha sonra daha fazla argüman eklemeniz gerekebileceğine dair bir fikriniz varsa, kolaylık sağlaması açısından *args parametresini uygulayın. Bunu şu şekilde kullanabilirsiniz:

Sadece x ve y fonksiyon parametrelerini *args ile değiştirdik. Bu kodu çalıştırmak, her bir fonksiyon çağrısı için şu şekilde çarpımı verecektir:

Böylece, *args parametresi, fonksiyonunuza değişken uzunlukta argüman listeleri göndermek istediğinizde kullanmak için idealdir. Bu yeteneği sayesinde, fonksiyon çağrılarına istediğiniz kadar argüman geçirebilirsiniz. Bu haliyle bu parametre, fonksiyona çok sayıda değişken, anahtar kelimesiz argüman kabul edebilen daha esnek kodlar oluşturmanıza olanak tanır.

**kwargs Nedir ve Nasıl Çalışır?

Sırada, parametrelerin çift yıldızlı versiyonu olan **kwargs var. Önceki formun aksine bu parametre, fonksiyona anahtar kelimeli, değişken uzunlukta argüman sözlükleri geçirmenize olanak tanır. *args parametresine benzer şekilde, çift yıldız işareti parametrenin en kritik öğesidir.

Önceki bölümde yaptığımız gibi, istediğiniz kadar argüman ekleyebilirsiniz. Aradaki fark, anahtar kelimeler atamanız gerekmesidir. Daha iyi anlamak için aşağıdaki örneği inceleyin. Burada, fonksiyona iletmek istediğimiz **kwargs argümanlarını yazdırarak başlayacağız:

Şimdi fonksiyonu çağıralım. Gördüğünüz gibi, anahtar kelime argümanları ekledik:

Programı bu noktada çalıştırmak size şu çıktıyı gösterecektir:

Ancak, sözlük veri tipinizin sırasız olma olasılığı vardır. Bu büyük ölçüde kullandığınız Python 3 sürümüne bağlıdır. Örneğin, Python 3.6'dan sonraki tüm sürümler size anahtar-değer çiftlerini sırayla verir. Bundan önceki tüm sürümler ise çıktıyı rastgele sırada gösterecektir. Oluşturduğunuz sözlük kwargs olarak adlandırılacaktır. Bunu sistemdeki diğer tüm sözlükler gibi kullanabileceğinizi ve değiştirebileceğinizi unutmayın. Şimdi **kwargs parametresini nasıl daha etkin kullanabileceğinizi ve uygulayabileceğinizi görelim.

Aşağıdaki örnekte, isimlerin olduğu bir sözlüğü karşılayacak yeni bir fonksiyon yapmaya çalışacağız. Örnek sözlüğümüzde iki isim olacak:

Programı çalıştırmak size şu çıktıyı verecektir:

Önceki örneğe benzer şekilde, sözlükler sırasız görünebilir. Bu nedenle, Casey ve Sammy isimlerinin sırası bazı durumlarda tersine dönebilir.

Ardından, fonksiyona ek argümanlar ileteceğiz. Bu, **kwargs parametresinin istediğiniz sayıda argümanı kabul etmesini sağlayabileceğinizi kanıtlayacaktır:

Programı çalıştırmak size bu çıktıyı gösterecektir:

Bu çıktı da sırasız olabilir. Ne olursa olsun, bu örnekler **kwargs parametresinin programınıza bir dizi anahtar kelime argümanı kullanma esnekliği sağladığını göstermektedir.

Argümanlar Nasıl Sıralanır

Bir fonksiyonda veya fonksiyon çağrısında bir argümanı sıralarken belirlenen sırayı akılda tutmak önemlidir. Bu sıra şu şekildedir:

  1. Biçimsel konumsal argümanlar

  2. *args

  3. Anahtar kelime argümanları

  4. **kwargs

Diyelim ki *args ve **kwargs parametrelerini açık konumsal parametrelerle birlikte kullanıyorsunuz. Bu, fonksiyonunuzun şu şekilde görüneceği anlamına gelir:

Öte yandan, bu parametreleri anahtar kelime parametreleri adlarıyla kullanmak, fonksiyonunuza aşağıdaki genel yapıyı kazandıracaktır:

Belirlenen sıraya uymamak, kodunuzu çalıştırdığınızda bir sözdizimi hatası almanıza neden olur. Bu nedenle, en başından bu hatayı yapmaktan kaçınmak en iyisidir.

Fonksiyon Çağrılarında *args ve **kwargs Nasıl Kullanılır

Son olarak, argümanları fonksiyonlara aktarmak için her iki parametreyi de nasıl kullanacağınızı göstereceğiz. Gösteren bir örnekle başlayacağız *args:

Bu fonksiyonda üç parametre vardır: arg_1, arg_2, ve arg_3. Bir değişken oluşturmalı ve bunu yinelenebilir bir nesneye ayarlamalısınız. Bu durumda, bu bir tuple olacaktır. Ardından, yıldız işareti sözdizimini kullanarak değişkeni fonksiyona aktarabilirsiniz.

Aşağıdaki komutu kullanarak programı çalıştırdığınızda çıktıyı gözlemleyin: python some_args.py komutu:

Programı yinelenebilir bir liste veri tipine de dönüştürmek ve isim olarak farklı bir değişken kullanmak mümkündür. Aşağıdaki kod, *args parametresini adlandırılmış bir parametreyle birleştirir:

Programı çalıştırdığınızda çıktı aşağıdaki gibi olacaktır:

Öte yandan, anahtar kelimeli argümanları **kwargs ile uygulayabilirsiniz. Bir sözlüğe eşit olan bir değişken oluşturduğunuzdan emin olun. Bu değişken 2 anahtar-değer çiftine sahip olmalıdır. Değişkeni 3 argümanlı bir fonksiyona şu şekilde aktarabiliriz:

Programı çalıştırmak için bir kez daha python some_kwargs.py komutunu kullanın:

Sonuç

Bu eğitimin sonuna geldiğinizde, *args ve **kwargs kavramlarının ne olduğu ve nasıl çalıştıkları konusunda iyi bir bilgiye sahip olmalısınız. Artık programınızı gelecekteki kullanıcılar için esnek hale getirmek amacıyla bu parametreleri kendi kodunuza uygulayabilirsiniz. Bunlar, kaç tane argüman kullanılacağını bilmediğiniz durumlar için idealdir. Sadece fonksiyonların ve parametrelerin kritik unsurları konusunda dikkatli olduğunuzdan emin olun.

Son olarak, blogumuzda yer alan ve Python ile başarılı bir şekilde çalışmanıza yardımcı olacak diğer kaynaklar:

Keyifli Kodlamalar!

author

Pranay Kapgate

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.