Daftar Referensi Python
*args dan **kwargs membuat fungsi bisa menerima jumlah argumen yang bebas: *args menampung argumen posisi sebagai tuple, **kwargs menampung keyword argument sebagai dictionary.
Sintaks
def fungsi(wajib, *args, **kwargs):
...
Aturan
| Bagian | Menampung | Menjadi |
|---|---|---|
*args |
argumen posisi ekstra | tuple |
**kwargs |
keyword argument ekstra | dict |
| Urutan parameter | wajib → *args → **kwargs (tidak boleh dibalik) |
|
Nama args/kwargs hanyalah konvensi — yang wajib adalah tanda * dan ** di depannya.
Contoh
def total(*angka):
print(sum(angka))
total(1, 2, 3)
total(10, 20)
Output:
6
30
Contoh Lainnya
**kwargs: pasangan nama-nilai bebas
def profil(**data):
for kunci, nilai in data.items():
print(kunci, ":", nilai)
profil(nama="Andi", kelas="9A")
Output:
nama : Andi
kelas : 9A
Gabungan: wajib + *args + **kwargs
def pesan(menu, *tambahan, **catatan):
print("Menu:", menu)
print("Tambahan:", tambahan)
print("Catatan:", catatan)
pesan("bakso", "es teh", pedas="sedang")
Output:
Menu: bakso
Tambahan: ('es teh',)
Catatan: {'pedas': 'sedang'}
Kebalikannya: unpacking saat memanggil
def tambah(a, b, c):
print(a + b + c)
angka = [1, 2, 3]
tambah(*angka)
Output:
6
Kesalahan Umum
- Urutan salah:
def f(**kwargs, *args)→SyntaxError. Urutannya: wajib,*args,**kwargs. - Mengira
argsadalah list — ia tuple (tidak bisa di-append). - Mengirim keyword yang tidak dikenali ke fungsi tanpa
**kwargs→TypeError: unexpected keyword argument.
Pelajari Lebih Lanjut
- Tutorial: Fungsi di Python (def)
- Referensi: Fungsi di Python · Argumen Default di Python · Dictionary di Python
- Buku Belajar Python untuk Pemula: Bab 11
