Python - Argumen-Hanya Kata Kunci

Halo, pelajar-pelajar yang dihormati! Selamat datang ke atas perjalanan yang menarik kami ke atas dunia pengaturcaraan Python. Hari ini, kita akan menjelajahi konsep yang mungkin terdengar agak menakutkan pada mulanya, tetapi saya janji anda akan menemukannya yang menarik dan sangat berguna. Kita sedang membicarakan tentang Argumen-Hanya Kata Kunci!

Python - Keyword-Only Arguments

Apa itu Argumen-Hanya Kata Kunci?

Bayangkan anda sedang memesan pizza. Anda tahu anda mahu ukuran besar, tetapi anda masih belum pasti tentang toppings lagi. Takkan baik jika anda boleh hanya katakan, "Saya mahu pizza besar" tanpa menentukan apa-apa lagi? Itulah jenis yang argumen-hanya kata kunci lakukan di atas Python!

Argumen-hanya kata kunci adalah jenis khusus parameter fungsi yang hanya boleh diberikan oleh kata kunci, bukannya oleh posisi. Mereka telah diperkenalkan di atas Python 3 untuk memberikan pengaturcara lebih kawalan atas cara fungsi dipanggil dan untuk membuat panggilan fungsi lebih jelas dan kurang berisiko kesalahan.

Mari kita pecahkan ia langkah demi langkah:

Argumen Fungsi Dasar

Sebelum kita kerna ke atas argumen-hanya kata kunci, mari kita ikut cepat mengulas cara argumen fungsi biasa berkerja:

def sapa(nama, pesan):
print(f"{pesan}, {nama}!")

sapa("Alice", "Helo")  # Output: Helo, Alice!
sapa("Good morning", "Bob")  # Output: Bob, Good morning!

Dalam contoh ini, susunan argumen penting. Jika kita menukar mereka, output akan berubah dan mungkin tidak memberi maksud.

Pengenalan Argumen-Hanya Kata Kunci

Sekarang, mari kita lihat bagaimana argumen-hanya kata kunci boleh membantu:

def sapa(*, nama, pesan):
print(f"{pesan}, {nama}!")

sapa(nama="Alice", pesan="Helo")  # Output: Helo, Alice!
sapa(pesan="Good morning", nama="Bob")  # Output: Good morning, Bob!

Perhatikan bintang * sebelum parameter? Itulah simbol penyihir yang membuat semua argumen berikut menjadi hanya kata kunci. Sekarang, kita mesti menentukan nama parameter apabila memanggil fungsi, tetapi susunan tidak penting lagi!

Contoh Argumen-Hanya Kata Kunci

Mari kita lihat contoh yang lebih praktikal. Anggap kita menulis fungsi untuk mengira luas segiempat:

def kira_luas(*, panjang, lebar):
return panjang * lebar

# Ini berkerja:
luas = kira_luas(panjang=10, lebar=5)
print(f"Luas adalah: {luas}")  # Output: Luas adalah: 50

# Ini juga berkerja:
luas = kira_luas(lebar=5, panjang=10)
print(f"Luas adalah: {luas}")  # Output: Luas adalah: 50

# Tetapi ini akan memunculkan ralat:
# luas = kira_luas(10, 5)  # TypeError: kira_luas() mengambil 0 argumen posisi tetapi 2 diberikan

Dalam contoh ini, kita mesti tentukan panjang dan lebar dengan nama. Ini membuat kod kita lebih dapat dibaca dan kurang berisiko kesalahan, khususnya apabila berurusan dengan fungsi yang memiliki banyak parameter.

Contoh: Menggunakan "sep" sebagai argumen bukan kata kunci

Sekarang, mari kita lihat fungsi terbina-dalam Python yang menggunakan kedua jenis argumen biasa dan hanya kata kunci: fungsi print().

print("Helo", "Dunia", sep="-")  # Output: Helo-Dunia

Di sini, "Helo" dan "Dunia" adalah argumen posisi, sementara sep adalah argumen kata kunci. Tetapi sep bukan hanya kata kunci; kita juga boleh menggunakannya sebagai argumen posisi:

print("Helo", "Dunia", "-")  # Output: Helo-Dunia

Namun, ini boleh membawa kepada kekeliruan. Itulah mengapa Python membenarkan kita untuk mendefinisikan fungsi sendiri dengan argumen-hanya kata kunci, memastikan bahwa beberapa parameter mesti selalu ditentukan dengan nama.

Menggunakan Argumen-Hanya Kata Kunci di atas Method yang Ditetapkan Pengguna

Mari kita cipta contoh yang lebih kompleks untuk menunjukkan kekuatan argumen-hanya kata kunci di atas method yang ditetapkan pengguna:

def format_nama(*, pertama, terakhir, tengah="", gelar=""):
jika tengah:
nama_penuh = f"{pertama} {tengah} {terakhir}"
else:
nama_penuh = f"{pertama} {terakhir}"

jika gelar:
return f"{gelar} {nama_penuh}"
else:
return nama_penuh

# Mari kita cuba kombinasi yang berbeza:
print(format_nama(pertama="John", terakhir="Doe"))
# Output: John Doe

print(format_nama(pertama="Jane", terakhir="Smith", gelar="Dr."))
# Output: Dr. Jane Smith

print(format_nama(pertama="Alice", tengah="Marie", terakhir="Johnson", gelar="Ms."))
# Output: Ms. Alice Marie Johnson

# Ini akan memunculkan ralat:
# print(format_nama("Bob", "Brown"))  # TypeError: format_nama() mengambil 0 argumen posisi tetapi 2 diberikan

Dalam contoh ini, pertama dan terakhir adalah argumen kata kunci hanya yang diperlukan, sementara tengah dan gelar adalah argumen kata kunci hanya opsional dengan nilai lalai.

Ringkasan Method Argumen-Hanya Kata Kunci

Berikut adalah rakaman yang meng ringkaskan kaedah yang kita telah membincangkan:

Method Description Example
sapa(*, nama, pesan) Fungsi sapaan dasar dengan argumen-hanya kata kunci sapa(nama="Alice", pesan="Helo")
kira_luas(*, panjang, lebar) Mengira luas segiempat menggunakan argumen-hanya kata kunci kira_luas(panjang=10, lebar=5)
format_nama(*, pertama, terakhir, tengah="", gelar="") Memformat nama dengan nama tengah opsional dan gelar format_nama(pertama="John", terakhir="Doe", gelar="Mr.")

Ingat, bintang * di atas definisi fungsi adalah apa yang membuat argumen berikut menjadi hanya kata kunci!

Kesimpulan

Argumen-hanya kata kunci adalah fitur yang kuat di atas Python yang boleh membuat kod anda lebih dapat dibaca, kurang berisiko kesalahan dan lebih fleksibel. Mereka adalah sangat berguna apabila anda membuat fungsi dengan banyak parameter atau apabila susunan argumen mungkin menjadi kacau.

Apabila anda teruskan perjalanan Python anda, anda akanjumpa banyak lagi situasi di mana argumen-hanya kata kunci boleh menjadi sangat membantu. Terus latihan, terus menjelajahi, dan yang paling penting, terus untuk bersenang-senang dengan Python!

Ingat, setiap pengaturcara yang hebat bermula sebagai pemula. Dengan kesabaran dan latihan, anda akan menulis program Python kompleks sebelum anda tahu. Selamat pengaturcaraan, master Python masa depan!

Credits: Image by storyset