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!

Python - Positional-Only Arguments

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:

  1. Hal ini dapat membuat pemanggilan fungsi lebih mudah dibaca, khususnya untuk fungsi dengan banyak parameter.
  2. Hal ini dapat mencegah konflik nama antara parameter fungsi dan argumen kata kunci.
  3. 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:

  1. Desain API: Ketika membuat API publik, menggunakan argumen posisi-Sahaja dapat mencegah pengguna dari mengandalkan nama parameter yang mungkin berubah di versi masa depan.

  2. 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.

  3. 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:

  1. Lupa Sintaks: Ingat, garis miring depan (/) digunakan untuk menandai argumen posisi-Sahaja. Semua yang berada sebelum itu adalah posisi-Sahaja.

  2. Kesalahan Urutan Argumen: Karena argumen posisi-Sahaja bergantung pada urutan, penting untuk mengingat urutan yang benar saat memanggil fungsi.

  3. 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