Python18 / 62

Fleksibilitas Parameter: *args dan **kwargs

Pernahkah kamu memperhatikan fungsi bawaan print() yang bisa menerima berapapun jumlah data? Bagaimana cara kerjanya? Jawabannya: *args dan **kwargs. Tanda bintang satu *args ibarat karung kosong yang menangkap semua nilai berlebih dan mengikatnya jadi Tuple. Sementara bintang dua **kwargs menampung argumen berpasangan (seperti nama='Budi') dan menyimpannya sebagai Dictionary. Fitur ini sangat berguna ketika kamu merancang fungsi yang belum tahu pasti berapa banyak data yang akan dikirimkan pengguna.

👀 Contoh dulu

def cetak_semua(*args, **kwargs):
    print(args)    # (1, 2)
    print(kwargs)  # {'nama': 'Budi'}
cetak_semua(1, 2, nama='Budi')

Hasilnya: (1, 2) {'nama': 'Budi'}

💡 Sangat umum ditemukan pada pembungkusan fungsi (decorator).

📝 Sekarang giliranmu

Tuliskan parameter fungsi def process(*args, **kwargs):.

Preview