Python - Positional-Only Arguments: Panduan Untuk Pemula
Halo sobat pemula Python! hari ini, kita akan melakukan perjalanan yang menarik ke dunia Python, khususnya untuk menjelajahi konsep yang disebut "Positional-Only Arguments." Jangan khawatir jika ini terdengar seperti istilah yang rumit - sampai akhir tutorial ini, kamu akan bisa menggunakan istilah ini seperti seorang profesional!
Apa Itu Argumen di Python?
Sebelum kita melompat ke dasar, mari kita mulai dengan yang dasar-dasar. Di Python, ketika kita membuat fungsi, kita sering perlu untuk mengirim informasi kepadanya. Informasi ini adalah yang kita sebut "argumen." Pahami argumen sebagai bahan-bahan yang kamu kirim ke resep (fungsi) untuk membuat makanan enak (output).
Sebagai contoh:
def sapa(nama):
print(f"Halo, {nama}!")
sapa("Alice")
Dalam fungsi sederhana ini, nama
adalah sebuah argumen. Ketika kita memanggil fungsi dengan sapa("Alice")
, "Alice" adalah nilai yang kita kirim ke argumen nama
.
Memahami Argumen Posisi
Sekarang, mari kita jalan satu langkah lebih jauh. Di Python, ada beberapa cara untuk mengirim argumen ke fungsi. Cara paling umum dan straightforward adalah melalui argumen posisi. Argumen ini diidentifikasi oleh posisi mereka dalam pemanggilan fungsi.
Ayo lihat contoh ini:
def deskripsikan_hewan(jenis_hewan, nama_hewan):
print(f"Saya memiliki {jenis_hewan} bernama {nama_hewan}.")
deskripsikan_hewan("anjing", "Buddy")
Dalam fungsi ini, jenis_hewan
dan nama_hewan
adalah argumen posisi. Ketika kita memanggil fungsi, Python tahu bahwa "anjing"对应jenis_hewan
dan "Buddy"对应nama_hewan
berdasarkan posisi mereka.
Pengenalan Argumen Posisi-Sahaja
Sekarang bahwa kita mengerti argumen posisi, mari kita berbicara tentang jenis khusus: argumen posisi-sahaja. Ini adalah argumen yang harus disediakan oleh posisi dan tidak bisa dilewatkan sebagai argumen kata kunci.
Di Python 3.8 dan versi berikutnya, kita dapat mendefinisikan parameter posisi-sahaja menggunakan sintaks khusus: garis miring depan (/). Setiap parameter sebelum / dalam definisi fungsi dianggap sebagai posisi-sahaja.
Ayo lihat contoh ini:
def sapa(nama, /, ucapan="Halo"):
print(f"{ucapan}, {nama}!")
sapa("Charlie") # Ini berhasil
sapa("Diana", "Hi") # Ini juga berhasil
sapa(nama="Eve") # Ini akan menyebabkan kesalahan
Dalam fungsi ini, nama
adalah argumen posisi-sahaja karena berada sebelum /. ucapan
adalah parameter reguler yang dapat dilewatkan baik oleh posisi atau sebagai argumen kata kunci.
Mengapa Menggunakan Argumen Posisi-Sahaja?
Kamu mungkin bertanya-tanya, "Mengapa kita ingin membatasi cara argumen dikirim?" Pertanyaan yang bagus! Ada beberapa alasan:
- Hal ini dapat membuat pemanggilan fungsi lebih mudah dibaca, khususnya untuk fungsi dengan banyak parameter.
- Hal ini dapat mencegah konflik nama antara parameter fungsi dan argumen kata kunci.
- Hal ini memungkinkan pengarang fungsi untuk mengubah nama parameter tanpa menghapus kode yang ada yang menggunakan fungsi.
Contoh Argumen Posisi-Sahaja
Mari kita lihat beberapa contoh lagi untuk benar-benar menempelkan pemahaman kita:
Contoh 1: Operasi Matematika
def pangkat(basis, /, eksponen=2):
return basis ** eksponen
print(pangkat(2)) # Output: 4
print(pangkat(2, 3)) # Output: 8
print(pangkat(2, eksponen=3)) # Output: 8
print(pangkat(basis=2, eksponen=3)) # Ini akan menyebabkan kesalahan
Dalam contoh ini, basis
adalah argumen posisi-sahaja, sedangkan eksponen
dapat dilewatkan baik oleh posisi atau sebagai argumen kata kunci.
Contoh 2: Manipulasi String
def ulangi_string(string, /, kali=2):
return string * kali
print(ulangi_string("Halo")) # Output: HaloHalo
print(ulangi_string("Hi", 3)) # Output: HiHiHi
print(ulangi_string("Wow", kali=4)) # Output: WowWowWowWow
print(ulangi_string(string="Ups", kali=2)) # Ini akan menyebabkan kesalahan
Di sini, string
harus dilewatkan secara posisi, tetapi kali
dapat dilewatkan baik cara.
Contoh 3: Menggabungkan Argumen Posisi-Sahaja dan Kata Kunci-Sahaja
Python juga mengizinkan kita untuk mendefinisikan argumen kata kunci-Sahaja menggunakan tanda bintang (*). Mari kita gabungkan ini dengan argumen posisi-Sahaja:
def format_nama(first, /, middle, *, last):
return f"{first} {middle} {last}"
print(format_nama("John", "Fitzgerald", last="Kennedy")) # Ini berhasil
print(format_nama("John", middle="Fitzgerald", last="Kennedy")) # Ini juga berhasil
print(format_nama(first="John", middle="Fitzgerald", last="Kennedy")) # Ini akan menyebabkan kesalahan
print(format_nama("John", "Fitzgerald", "Kennedy")) # Ini juga akan menyebabkan kesalahan
Dalam fungsi ini, first
adalah posisi-Sahaja, middle
dapat dilewatkan baik cara, dan last
adalah kata kunci-Sahaja.
kasus Praktis
Sekarang bahwa kita telah melihat bagaimana argumen posisi-Sahaja bekerja, mari kita lihat beberapa kasus dunia nyata di mana mereka mungkin berguna:
-
Desain API: Ketika membuat API publik, menggunakan argumen posisi-Sahaja dapat mencegah pengguna dari mengandalkan nama parameter yang mungkin berubah di versi masa depan.
-
Optimasi Kinerja: Dalam beberapa kasus, argumen posisi-Sahaja dapat menyebabkan pemanggilan fungsi yang sedikit lebih cepat, karena Python tidak perlu menangani penguraian argumen kata kunci.
-
Mengikuti Fungsi Built-in: Banyak fungsi built-in Python menggunakan argumen posisi-Sahaja. Jika kamu membuat wapper atau fungsi yang mirip, kamu mungkin ingin mencocokkan perilaku ini.
Tumbang Umum dan Cara untuk Menghindarinya
Meskipun argumen posisi-Sahaja dapat kuat, mereka dapat menyebabkan beberapa kebingungan jika tidak digunakan dengan hati-hati. Berikut adalah beberapa tumbang umum dan cara untuk menghindarinya:
-
Lupa Sintaks: Ingat, garis miring depan (/) digunakan untuk menandai argumen posisi-Sahaja. Semua yang berada sebelum itu adalah posisi-Sahaja.
-
Kesalahan Urutan Argumen: Karena argumen posisi-Sahaja bergantung pada urutan, penting untuk mengingat urutan yang benar saat memanggil fungsi.
-
Penggunaan Berlebihan Argumen Posisi-Sahaja: Meskipun mereka memiliki kegunaan, jangan membuat setiap argumen posisi-Sahaja. Hal ini dapat membuat fungsi kamu kurang fleksibel dan lebih sulit digunakan.
Kesimpulan
Selamat! Kamu baru saja melakukan penyelaman mendalam ke dunia argumen posisi-Sahaja di Python. Dari pengertian apa itu, melihat bagaimana mereka bekerja dalam berbagai contoh, kamu sekarang memiliki alat untuk menggunakan fitur ini di program Python kamu.
Ingat, seperti banyak alat di pemrograman, argumen posisi-Sahaja kuat saat digunakan dengan baik. Mereka dapat membuat kode kamu lebih robust dan API kamu lebih stabil, tetapi harus digunakan dengan bijaksana.
Sebagai kamu terus menjalankan perjalanan Python kamu, terus eksperimen dengan jenis argumen dan definisi fungsi yang berbeda. Semakin banyak kamu latihan, semakin alami konsep ini akan menjadi. Happy coding, pemimpin Python masa depan!
Method | Deskripsi |
---|---|
def fungsi(arg, /) |
Mendefinisikan fungsi dengan argumen posisi-Sahaja |
def fungsi(arg1, /, arg2) |
Mendefinisikan fungsi dengan argumen posisi-Sahaja dan reguler |
def fungsi(arg1, /, arg2, *, arg3) |
Mendefinisikan fungsi dengan posisi-Sahaja, reguler, dan argumen kata kunci-Sahaja |
Credits: Image by storyset