Python *args ve **kwargs Kullanımı
*args nedir?
*args sınırsız sayıda argüman almamızı sağlar. Fonksiyonun argument bölümünde kullanılır. Ayrıca programın çökmesini engeller. Bazı durumlarda kullanılacak olan argüman sayısı belli olmayabilir. Böyle durumlarda *args kullanmak yararlı olabilir.
def goster(*args):
for arg in args:
print(arg)
goster("ahmet", "mehmet", 12)
goster(23, True)
Yukarıda görüldüğü *args kullanımıyla birlikte parametre kısmında istediğimiz sayıda argüman verebiliriz. Şimdi biraz daha detaylandıralım: liste = ["ahmet", "mehmet", 12]
goster(liste)
Eğer bu şekilde verirsek liste elemanları alt alta sıralanıp gösterilmeyecek. Direkt olarak ['ahmet', 'mehmet', 12] sonucu elde edeceğiz. Çünkü verdiğimiz argüman bir liste olarak görülmüyor. Bu argümanın liste olarak görünmesi için aşağıdaki şekilde bir kullanılmalıdır. goster(*liste)
**kwargs nedir?
**kwargs argümanı *args argümanı gibi olmakla birlikte ondan ayrı bir özellik olarak değer atanmış argümanlardır. Kısacası bu argümanlar default olarak tanımlıdır.
def goster_2(**kwargs):
for e in kwargs.items():
print(e)
goster_2(pi = 3.14, e = 2.78, g = 10)
Elde ettiğimiz sonuç aşağıdaki gibi olur: ('pi', 3.14)
('e', 2.78)
('g', 10)
Sadece değerleri ekrana yazdırmak istersek e yerine e[1] yazmamız yeterli olacaktır.
Hiç yorum yok: