Menggunakan *args dan **kwargs Pada Function Python
Daftar Isi | |
---|---|
1. | Pengertian *args dan **kwargs |
2. | Penggunaan *args pada function python |
3. | Penggunaan **Kwargs pada function python |
2 return (a**2 + b**2)**0.5
Dilihat sekilas saja, pas sudah tahu bahwa function di atas digunakan untuk menghitung pythagoras dari argumen a dan b.
Akan tetapi sering sekali orang ahli python membuat function yang sulit dimengerti, salah satunya yang menggunakan argumen *args dan **kwargs. Dua hal ini sering membuat pemain baru pada python kesulitan memahaminya.
Pengertian *args dan **kwargs
baik *args maupun **kwargs memiliki kata kunci yang sama, yaitu args. Dimana kata tersebut merupakan singkatan dari arguments. kw pada **kwargs juga merupakan sebuah singkatan, dari kata keywords.
Artinya, *args, dan **kwargs memungkinkan pengguna python untuk memasukkan sebanyak mungkin argumen function, tanpa harus melakukan spesifikasi variabel untuk argumen tersebut.
Misalnya pada contoh sebelumnya, terdapat sebuah function dengan dua argumen a dan b, cukup mudah untuk dilakukan. Tapi bagaimana kalau argumennya ada 10 dari a sampai j?. Inisiasinya pun akan cukup panjang.
Belum lagi misalnya jika 10 variabel tersebut ada kondisi kalau beberapa argumen tidak dimasukkan pun tidak mempengaruhi hasil fungsi. Masa iya harus tetap memasukkan 10 variabel ketika yang digunakan hanya 5? Mubadzir kan.
Karena itu, penulisan argumen yang banyak bisa dilakukan menggunakan *args dan **kwargs.
Cara Penggunaan *args pada Function Python
2 print(args)
3
4 func(1, 2, 3, 4, 5)
out:
(1, 2, 3, 4, 5)
Pada baris 1 dilakukan inisiasi function dengan nama func, argumennya *args. Ketika digunakan dalam statement di dalam function, tanda * dihapus, sehingga untuk menampilkan nilai dari *args hanya menggunakan print(args).
Ketika fungsinya dipanggil dengan argument 1, 2, 3, 4, 5, nilai yang muncul adalah sebuah tuple yang berisi nilai-nilai tersebut.
Statement yang lebih kompleks pun dapat dilakukan seperti di bawah ini:
2 for i in range(len(args)):
3 if i % 2 == 0:
4 print(args[i])
5 func(0, 1, 2, 3, 4, 5)
out:
0
2
4
Function func di atas akan menampilkan elemen args yang indeksnya genap.
Penggunaan **kwargs Pada Function Python
Karena namanya mirip, prinsip kerja **kwargs pun mirip dengan *args. Bedanya, pada **kwargs terdapat keywords. Karena ada keywords, ketika memasukkan argumen pun harus dengan keywords, misal (alas = 3, tinggi = 2), tidak bisa langsung (3, 2)
Karena menggunakan keywords, maka **kwargs akan bersifat seperti dictionary pada python. Sehingga, valuenya dapat diakses seperti ini:
2 print(kwargs["laut"])
3 print(kwargs["darat"])
4 print(kwargs["udara"])
5
6 func(udara = "burung", darat = "badak", laut = "hiu")
out:
badak
hiu
Beda kan inisiasi argumentnya, begitu juga dengan statement untuk memanggil value **kwargs di dalam functionnya. Persis seperti dictionary python.
Yang perlu di garis bawahi adalah saat inisiasi argumennya. Saat mengambil value nya mirip dengan dictionary, misal pada baris ke dua, laut diubah menjadi string. Akan tetapi saat inisiasinya laut penulisannya seperti saat inisiasi variabel biasa.
Video Gaming and eSports – Videoslots, YouTube
BalasHapusTwitch, YouTube, Amazon, Betfair, “I love it when Twitch streams live games,” she said in a recent interview with a Twitch youtube to mp4 streamer.