*args
Sintaks khusus *args
pada fungsi di Python digunakan untuk melewatkan sembarang jumlah argumen ke fungsi. *args
ini digunakan untuk melewatkan satu atau beberapa argumen non kata kunci.
Sintaks menggunakan tanda *
untuk menerima sembarang jumlah argumen. Nama args bisa saja diganti dengan nama lain, hanya saja yang umum dipakai adalah args
.
*args
mengizinkan kita untuk memasukkan beberapa argumen yang jumlahnya tidak ditentukan.
Sebagai contoh: kita ingin membuat fungsi yang menerima sejumlah bilangan, dan mengalikannya satu persatu. Ini bisa menggunakan *args
.
Dengan menggunakan tanda *, variabel yang diasosiasikan dengan * menjadi iterable, yang artinya bisa kita iterasikan dan jadikan input untuk fungsi orde yang lebih tinggi seperti map
, filter
, dan lain sebagainya
Contoh penggunaan *args:
# Program python untuk penggunaan *args def test(arg1, *argv): print "argumen pertama :", arg1 for arg in argv: print "Argumen berikutnya lewat *argv :", arg test('Hello', 'Welcome', 'to', 'Pythonindo', 'man')
Output
argumen pertama : Hello Argumen berikutnya lewat *argv : Welcome Argumen berikutnya lewat *argv : to Argumen berikutnya lewat *argv : Pythonindo Argumen berikutnya lewat *argv : man
**kwargs
Sintaks khusus **kwargs
digunakan untuk melewatkan sembarang jumlah argumen yang menggunakan kata kunci ke fungsi. Kita menggunakan dua tanda bintang di sini.
Argumen ber-kata kunci adalah argumen dimana kita melewatkan argumen berpasangan key dan value.
Kita bisa menyamakan kwargs
ini dengan dictionary. Kita bisa mengiterasikan kwargs dengan menggunakan kata kuncinya.
def hello(**kwargs): if kwargs is not None: for key, value in kwargs.iteritems(): print "%s == %s" %(key, value)
Output
>>> hello(name = 'Budi Alam') name = Budi Alam
Menggunakan *args dan **kwargs
Berikut ini adalah contoh penggunaan *args dan **kwargs.
test(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", arg2) print("arg3:", arg3
Output
# dengan *args >>> args = ("hey", 14, "joey") >>> test(*args) arg1: hey arg2: 14 arg3: joey # dengan **kwargs: >>> kwargs = {"arg1" : "hey", "arg2" : 14, "arg3" : "joey"} >>> testify(**kwargs) arg1 : hey arg2 : 14 arg3 : joey