Python’da args ve kwargs kullanımı

args ve kwargs için sözdizimi * ve **‘dır; yani *args ve **kwargs.

args ve kwargs için sözdizimi * ve **‘dır; yani *args ve **kwargs. Bu değişken isimleri artıtk gelenekselleştiği için bu şekilde kullanılır, ama tabi bu kullanım bir kural değil.

İşlevimizde kaç bağımsız değişken kullanacağımızdan emin değilsek, yani işlevinize rasgele sayıda bağımsız değişken geçireceksek *args kullanırız:

>>> def print_everything(*args):
        for count, thing in enumerate(args):
...         print( '{0}. {1}'.format(count, thing))
...
>>> print_everything('apple', 'banana', 'cabbage')
0. apple
1. banana
2. cabbage

**kwargs‘da benzer şekilde çalışır ancak kwargs, önceden tanımlamadığımız adlandırılmış bağımsız değişkenleri işlememizi sağlar:

>>> def table_things(**kwargs):
...     for name, value in kwargs.items():
...         print( '{0} = {1}'.format(name, value))
...
>>> table_things(apple = 'fruit', cabbage = 'vegetable')
cabbage = vegetable
apple = fruit

*args ve *kwargs‘ı adlandırılmış bağımsız değişkenlerle birlikte de kullanabiliriz. Fonksiyonda önce bağımsız değişkenler değerlerini alır, sonra kalan diğer her şey *args ve *kwkargs‘a geçirilir. Adlandırılmış bağımsız değişkenler listede ilk sırada gelir.

def table_things(titlestring, **kwargs)

*args ve *kwargs‘ın her ikisini de aynı işlev tanımında kullanabiliriz, ancak *args‘ın daha önce gelmesi gerekir.

Ayrıca, bir işlevi çağırırken * ve ** sözdizimini de kullanabiliriz. Mesela:

>>> def print_three_things(a, b, c):
...     print( 'a = {0}, b = {1}, c = {2}'.format(a,b,c))
...
>>> mylist = ['aardvark', 'baboon', 'cat']
>>> print_three_things(*mylist)
a = aardvark, b = baboon, c = cat

Bu örnekte görebileceğiniz gibi bir liste (veya demet (tuple)) alır ve bunu değişkenlere açar. Böylece, liste öğelerini işlevdeki bağımsız değişkenlerle eşleştirir. Tabii ki, hem işlev tanımında hem de işlev çağrısında * kullanabiliriz.

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python101 – 10’a kadar say

Döngüler İlk kontrol yapımıza geçiyoruz.

Dekoratörler

Giriş  Dekoratör fonksiyonları yazılım tasarım desenleridir.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.