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:

Yorum Gönderme