Ada tiga jenis argumen yang dapat diterima oleh fungsi Python: standar, variabel (*args), dan kata kunci (**kwargs). Argumen standar adalah yang paling sederhana tetapi memiliki fungsionalitas terbatas. Di sisi lain, *args dan **kwargs memungkinkan Anda membuat fungsi Anda lebih fleksibel, dengan menerima sejumlah input variabel.

Jenis penerusan argumen yang Anda pilih bergantung pada sifat fungsi Anda dan gaya pemrograman pilihan Anda sendiri.

Fungsi Dasar di Python

Untuk memahami bagaimana dua argumen variabel dalam fungsi Python bekerja, penting untuk memahami mengapa mereka ada di tempat pertama. Fungsi sederhana mendeklarasikan sejumlah argumen anonim seperti:

defnomor tambahan(a, b, c):
kembali a + b + c

Fungsi ini berfungsi dengan baik, tetapi ada ruang untuk perbaikan. Masalah terbesar adalah hanya menangani dua argumen, sehingga hanya dapat menambahkan dua angka. Bagaimana jika Anda ingin menambahkan dua atau empat angka? Fungsi ini tidak akan memungkinkan Anda untuk melakukannya. Melewati lebih banyak atau lebih sedikit argumen daripada yang diterima fungsi akan menghasilkan TypeError.

Tentu saja, Anda dapat membuat lebih banyak fungsi untuk menerima jumlah argumen yang berbeda. Tapi itu tidak nyaman dan tidak akan menskala dengan baik sama sekali. Anda juga harus membuat fungsi baru setiap kali Anda ingin menangani sejumlah input baru.

Di situlah argumen variabel dan argumen kata kunci masuk. Dengan menggunakan *args dan **kwargs, Anda dapat menentukan fungsi fleksibel yang dapat mengambil sejumlah input yang bervariasi.

Apa itu *args di Python?

Ide utama di balik *args di Python adalah untuk memungkinkan Anda melewatkan sejumlah variabel input ke fungsi Anda. Ini berguna dalam berbagai aplikasi. Misalnya, pikirkan program kalkulator di mana Anda ingin memberi pengguna kemampuan untuk menambahkan dua angka atau lebih dan mengembalikan jumlahnya.

Perhatikan bahwa args hanyalah nama variabel; itu * yang penting. Anda dapat menggunakan nama yang valid untuk argumen variabel Anda, selama Anda menyertakan *.

Cara Menggunakan *args

Anda dapat memodifikasi fungsi addnum untuk mengambil sejumlah variabel input sebagai berikut:

defnomor tambahan(*arg):
jumlah = 0

untuk nomor di argumen:
jumlah = jumlah + jumlah

kembali total

Cuplikan kode di atas menggunakan perulangan for untuk beralih melalui input yang disediakan.

Anda kemudian dapat memanggil fungsi addnum dengan argumen variabel dan itu akan berfungsi tanpa menimbulkan kesalahan:

mencetak(tambahan(10, 1, 12, 12, 4, 54, 5)) ## mengembalikan 98
mencetak(tambahan(14, 54, 5)) # kembali 73
mencetak(tambahan(10, 5)) # kembali 15

Apa itu **kwargs di Python?

Sementara *args dan **kwargs memungkinkan kita untuk meneruskan sejumlah variabel input ke fungsi, yang terakhir khusus untuk argumen kata kunci. Jika Anda tidak tahu, argumen kata kunci hanyalah nama mewah untuk argumen dengan nama.

Hal unik lainnya tentang **kwargs adalah Python mewakili nilai sebagai kamus.

Cara Menggunakan **kwargs

Seperti *args, tanda bintang ganda adalah bagian yang penting; Anda dapat menggunakan kata apa saja sebagai nama parameter. Berikut adalah contoh cara menggunakan **kwargs di Python:

defmingguan_kehadiran(**hari kerja):
total_peserta = 0

untukpesertadihari kerja.nilai():
total_attendees = total_attendees + peserta

kembali total_peserta

mencetak(kehadiran_mingguan (senin = 265, selasa = 698, rabu = 365, kamis = 463, jumat = 234)) # kembali 2025
mencetak(kehadiran_mingguan (senin = 265, jumat = 234)) # mengembalikan 499
mencetak(kehadiran_mingguan (rabu = 365, kamis = 463, jumat = 234)) # mengembalikan 1062

Cuplikan kode di atas juga menggunakan for loop, tetapi kali ini dengan metode values() bawaan Python. Metode itu mengembalikan objek tampilan dari semua nilai dalam kamus. Metode values() memungkinkan Anda untuk loop melalui kamus Python tanpa kerumitan.

Gunakan Argumen Variabel untuk Membuat Fungsi Python Anda Fleksibel

Argumen fungsi berguna, tetapi beberapa fungsi dapat mengambil manfaat dari menerima sejumlah argumen yang bervariasi. Argumen kata kunci bernama dapat membuat kode Anda lebih mudah dibaca dan lebih mudah digunakan. Anda harus menerima argumen *args dan **kwargs Python. Mereka cukup mudah digunakan, dan dengan mereka, Anda dapat membuat fungsi dan program Anda lebih fleksibel.

Dengan mengikuti langkah-langkah dan cuplikan kode di atas, kami berharap Anda sekarang dapat menggunakan argumen kata kunci variabel dan non-kata kunci untuk fungsi Anda.