← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 19

Argumen: default, *args, **kwargs

Nilai bawaan, jumlah bebas posisional, dan kata kunci.

Pahami konsepnya

Parameter boleh punya nilai bawaan: def sapa(nama, sapaan="Halo"): — pemanggil cukup kirim nama; sapaan boleh dilewati, diganti, atau dikirim dengan nama: sapa("Ari", sapaan="Selamat"). Argumen posisional dikirim berurutan; keyword argument dikirim dengan nama sehingga urutan bebas.

*args mengumpulkan argumen posisional berlebih menjadi tuple: def jumlah(*angka): menerima jumlah berapa pun — jumlah(1, 2, 3) memberi angka = (1, 2, 3). **kwargs mengumpulkan keyword argument berlebih menjadi dict: def profil(**data): menerima nama="Ari", umur=17 sebagai data = {"nama": "Ari", "umur": 17}.

Urutan deklarasi wajib: parameter biasa, *args, parameter keyword-only, **kwargs. Star di definisi mengumpulkan; star di pemanggilan memecah — dua sisi koin yang sama.

Coba contoh kode

def sapa(nama, sapaan="Halo"):
    return f"{sapaan}, {nama}!"

print(sapa("Ari"))
print(sapa("Budi", "Selamat pagi"))
print(sapa(nama="Citra", sapaan="Oi"))

def jumlah(*angka):
    total = 0
    for n in angka:
        total += n
    return total

print(jumlah(1, 2, 3, 4, 5))  # 15

def profil(**data):
    for k, v in data.items():
        print(f"  {k}: {v}")

profil(nama="Ari", umur=17, kota="Bandung")

sapa menunjukkan tiga cara memanggil: posisional saja, campuran, dan semua keyword. *args mengubah lima angka menjadi tuple yang diiterasi; **kwargs mengubah tiga pasangan menjadi dict yang di-loop items().

Latihan singkat

Uji: rata(*angka) — rata(10,20,30) harus `20.0`.