Python - Argumen Arbitari atau Panjang Variabel
Hai di sana, ahli penyihir Python masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia argumen arbitari di Python. Jangan khawatir jika anda baru di atas pengaturcaraan; saya akan menjadi pemandu anda yang bersahabat, dan kita akan menjelajahi konsep ini langkah demi langkah. Jadi, rakamkan wands virtual anda (papan kekunci), dan mari kita melompat masuk!
Argumen Arbitari (*args)
Bayangkan anda sedang merancang satu perayaan, tetapi anda tidak pasti berapa ramai kawan yang akan hadir. Anda mahu untuk bersedia untuk apa jua jumlah tetamu. Itu adalah persis apa yang argumen arbitari lakukan di atas fungsi Python – mereka membenarkan anda untuk menguruskan jumlah yang tidak diketahui atas argumen!
Di atas Python, kita gunakan *args
untuk menandakan argumen arbitari. Bintang (*
) adalah simbol penyihir di sini, dan args
adalah hanya satu konvensyen (anda boleh menggunakan apa jua nama, tetapi args
adalah sangat digunakan dan dikenali).
Mari kita lihat satu contoh yang ringkas:
def greet_friends(*args):
for friend in args:
print(f"Hello, {friend}!")
greet_friends("Alice", "Bob", "Charlie")
Dalam contoh ini, greet_friends()
boleh menerima apa jua jumlah argumen. Apabila kita menjalankan kod ini, ia akan menghasilkan:
Hello, Alice!
Hello, Bob!
Hello, Charlie!
Tapi apa jika kita ada lebih ramai kawan? Tiada masalah! Kita boleh dengan mudah menambah lebih banyak nama:
greet_friends("Alice", "Bob", "Charlie", "David", "Eve")
Dan fungsi kita akan bersenang-senang untuk menyambut mereka semua!
Cara Kerja *args
Apabila anda menggunakan *args
di atas definisi fungsi, Python akan mengemas semua argumen ke atas satu rakam. Anda boleh kemudian mengiterasi atas rakam ini di atas fungsi anda. Ia seperti memiliki rakam penyihir yang boleh menahan apa jua jumlah item!
Contoh Argumen Arbitari
Mari kita cipta satu contoh yang lebih praktikal. Bayangkan kita mahu untuk mengira purata bagi jumlah yang berubah-ubah atas mata:
def calculate_average(*args):
if len(args) == 0:
return 0
total = sum(args)
average = total / len(args)
return average
print(calculate_average(85, 90, 78))
print(calculate_average(92, 88, 95, 78, 80))
Ini akan menghasilkan:
84.33333333333333
86.6
Fungsi calculate_average()
kita boleh menguruskan apa jua jumlah mata. Ia mengira jumlah menggunakan fungsi rakaman sum()
, kemudian membahagi dengan jumlah mata untuk mendapatkan purata.
Argumen Wajib Dengan Argumen Arbitari
Kadang-kadang, anda mungkin mahu untuk memiliki beberapa argumen wajib bersama dengan argumen arbitari. Tiada risau! Python telah membantu anda. Anda boleh campur parameter biasa dengan *args
. Just ingat untuk meletakkan *args
di atas akhir:
def introduce_class(teacher, *students):
print(f"Hello, I'm {teacher}, and I'll be your teacher.")
print("Let's introduce the students:")
for student in students:
print(f"- {student}")
introduce_class("Mr. Johnson", "Alice", "Bob", "Charlie")
Ini akan menghasilkan:
Hello, I'm Mr. Johnson, and I'll be your teacher.
Let's introduce the students:
- Alice
- Bob
- Charlie
Dalam contoh ini, teacher
adalah argumen wajib, sementara *students
boleh menerima apa jua jumlah nama pelajar.
Argumen Kata Kunci Arbitari (**kwargs)
Sekarang, mari kita naik taraf! Apa jika kita mahu untuk melepaskan pasangan kunci-nilai sebagai argumen? Masukkan **kwargs
(argumen kata kunci)! Ia seperti *args
, tetapi untuk argumen bernama.
Inilah satu contoh yang ringkas:
def print_user_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_user_info(name="Alice", age=25, city="New York")
Ini akan menghasilkan:
name: Alice
age: 25
city: New York
Dalam kasus ini, **kwargs
mencipta satu kamus di mana kunci adalah nama argumen dan nilai adalah nilai argumen.
Beberapa Argumen Dengan Argumen Kata Kunci Arbitari
Anda boleh menggabungkan argumen biasa, *args
, dan **kwargs
di atas satu fungsi. Justingat untuk susunan: argumen biasa dahulu, kemudian *args
, dan akhirnya **kwargs
.
Inilah satu contoh yang membawa semua bersama:
def student_info(school, *args, **kwargs):
print(f"School: {school}")
print("Subjects:")
for subject in args:
print(f"- {subject}")
print("Additional Information:")
for key, value in kwargs.items():
print(f"{key}: {value}")
student_info("Python High", "Math", "Science", "History", name="Alice", age=16, grade="10th")
Ini akan menghasilkan:
School: Python High
Subjects:
- Math
- Science
- History
Additional Information:
name: Alice
age: 16
grade: 10th
Ringkasan Method
Inilah satu jadual yang menjelaskan method yang kita telah membincangkan:
Method | Syntax | Description |
---|---|---|
Argumen Arbitari | *args |
Membenarkan fungsi untuk menerima apa jua jumlah argumen posisi |
Argumen Kata Kunci Arbitari | **kwargs |
Membenarkan fungsi untuk menerima apa jua jumlah argumen kata kunci |
Penggunaan gabungan | def func(regular_args, *args, **kwargs) |
Menggabungkan argumen biasa dengan kedua jenis argumen arbitari |
Ingat, kekuatan argumen arbitari adalah pada keanjalan mereka. Mereka membenarkan anda untuk membuat fungsi yang lebih serba guna yang boleh menyesuaikan diri kepada situasi yang berbeza.
Apabila kita menutup perjalanan penyihir ini melalui argumen arbitari, saya harap anda merasa lebih yakin tentang penggunaan alat penyihir ini di atas script Python anda... Saya maksud, skrip! Latihan menggunakan *args
dan **kwargs
di atas fungsi anda, dan tidak lama lagi anda akan menghasilkan kod Python dengan kefasihan penyihir yang berpengalaman. Selamat pengaturcaraan, dan jangan lupa untuk menjadikan fungsi anda sentiasa fleksibel!
Credits: Image by storyset