Python - Argumen Arbitrer atau Panjang Variabel
Halo semua, para penyihir Python masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia argumen arbitrer di Python. Jangan khawatir jika kamu baru mengenal pemrograman; saya akan menjadi pemandumu yang ramah, dan kita akan menjelajahi konsep ini langkah demi langkah. Jadi, siapkan wands virtual kamu (keyboard), dan mari kita melompat!
Argumen Arbitrer (*args)
Bayangkan jika kamu sedang merencanakan sebuah pesta, tetapi kamu tidak yakin berapa banyak teman yang akan datang. Kamu ingin untuk bersiap untuk jumlah tamu yang berapa saja. Itu adalah yang akan argumen arbitrer lakukan di fungsi Python – mereka memungkinkan kamu untuk menangani jumlah argumen yang tidak diketahui!
Di Python, kita menggunakan *args
untuk menandai argumen arbitrer. Tanda bintang (*
) adalah simbol magis di sini, dan args
hanya konvensi (kamu bisa menggunakan nama apa saja, tetapi args
sangat umum digunakan dan dikenal).
Lihatlah contoh sederhana ini:
def ucapan_teman(*args):
for teman in args:
print(f"Halo, {teman}!")
ucapan_teman("Alice", "Bob", "Charlie")
Dalam contoh ini, ucapan_teman()
dapat menerima jumlah argumen apa saja. Ketika kita menjalankan kode ini, itu akan menghasilkan:
Halo, Alice!
Halo, Bob!
Halo, Charlie!
Tapi apa jika kita punya lebih banyak teman? Tidak masalah! Kita dapat dengan mudah menambahkan lebih banyak nama:
ucapan_teman("Alice", "Bob", "Charlie", "David", "Eve")
Dan fungsi kami akan senang untuk menyapa mereka semua!
Cara Kerja *args
Ketika kamu menggunakan *args
di definisi fungsi, Python mengemas semua argumen ke dalam sebuah tuple. Kamu kemudian dapat mengulanginya di dalam fungsi kamu. Itu seperti memiliki tas magis yang dapat menahan jumlah item berapa saja!
Contoh Argumen Arbitrer
Mari kita buat contoh yang lebih praktis. Misalkan kita ingin menghitung rata-rata dari jumlah skor yang berubah:
def hitung_rerata(*args):
if len(args) == 0:
return 0
total = sum(args)
rerata = total / len(args)
return rerata
print(hitung_rerata(85, 90, 78))
print(hitung_rerata(92, 88, 95, 78, 80))
Ini akan menghasilkan:
84.33333333333333
86.6
Fungsi hitung_rerata()
kami dapat menangani jumlah skor berapa saja. Itu menghitung jumlah menggunakan fungsi built-in sum()
, kemudian membagi dengan jumlah skor untuk mendapatkan rerata.
Argumen Wajib Dengan Argumen Arbitrer
Kadang-kadang, kamu mungkin ingin memiliki beberapa argumen wajib bersama dengan argumen arbitrer. Tidak usah khawatir! Python menangani kamu. Kamu dapat menggabungkan parameter reguler dengan *args
. Hanya ingat untuk menempatkan *args
di akhir:
def kenalan_kelas(guru, *murid):
print(f"Halo, saya {guru}, dan saya akan menjadi guru kamu.")
print("Mari kita kenalkan murid-murid:")
for murid in murid:
print(f"- {murid}")
kenalan_kelas("Mr. Johnson", "Alice", "Bob", "Charlie")
Ini akan menghasilkan:
Halo, saya Mr. Johnson, dan saya akan menjadi guru kamu.
Mari kita kenalkan murid-murid:
- Alice
- Bob
- Charlie
Dalam contoh ini, guru
adalah argumen wajib, sementara *murid
dapat menerima jumlah nama murid berapa saja.
Argumen Keyword Arbitrer (**kwargs)
Sekarang, mari kita naik level! Apa jika kita ingin mengirim pasangan kunci-nilai sebagai argumen? Masuklah **kwargs
(argumen keyword)! Ini seperti *args
, tetapi untuk argumen bernama.
Inilah contoh sederhana:
def print_info_pengguna(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info_pengguna(name="Alice", age=25, city="New York")
Ini akan menghasilkan:
name: Alice
age: 25
city: New York
Dalam kasus ini, **kwargs
membuat kamus di mana kunci adalah nama argumen dan nilai adalah nilai argumen.
Beberapa Argumen Dengan Argumen Keyword Arbitrer
Kamu dapat menggabungkan argumen reguler, *args
, dan **kwargs
di dalam satu fungsi. Hanya ingat urutan: argumen reguler terlebih dahulu, kemudian *args
, dan akhirnya **kwargs
.
Inilah contoh yang membawa semuanya bersama:
def info_murid(school, *args, **kwargs):
print(f"Sekolah: {school}")
print("Mata Pelajaran:")
for subject in args:
print(f"- {subject}")
print("Informasi Tambahan:")
for key, value in kwargs.items():
print(f"{key}: {value}")
info_murid("Python High", "Matematika", "Sains", "Sejarah", name="Alice", age=16, kelas="10th")
Ini akan menghasilkan:
Sekolah: Python High
Mata Pelajaran:
- Matematika
- Sains
- Sejarah
Informasi Tambahan:
name: Alice
age: 16
kelas: 10th
Ringkasan Metode
Berikut adalah tabel ringkasan metode yang telah kita diskusikan:
Metode | Sintaks | Deskripsi |
---|---|---|
Argumen Arbitrer | *args |
Memungkinkan fungsi untuk menerima jumlah argumen posisional apa saja |
Argumen Keyword Arbitrer | **kwargs |
Memungkinkan fungsi untuk menerima jumlah argumen keyword apa saja |
Penggunaan gabungan | def func(regular_args, *args, **kwargs) |
Menggabungkan argumen reguler dengan kedua jenis argumen arbitrer |
Ingat, kekuatan argumen arbitrer ada di atas fleksibilitasnya. Mereka memungkinkan kamu untuk membuat fungsi yang lebih serbaguna yang dapat menyesuaikan dengan berbagai situasi.
Sebagai penutup perjalanan magis ini melalui argumen arbitrer, saya harap kamu merasa lebih percaya diri tentang menggunakan alat yang kuat ini di dalam skrip Python kamu... Saya maksud, penyihir! Praktekan penggunaan *args
dan **kwargs
di dalam fungsi kamu, dan segera kamu akan membuat kode Python dengan kefasihan penyihir yang berpengalaman. Happy coding, dan semoga fungsi kamu selalu fleksibel!
Credits: Image by storyset