Menguasai Argumen Fungsi Python: Posisi, Kata Kunci, dan Parameter Default
Menguasai Argumen Fungsi Python
Temukan cara merancang fungsi yang menerima sejumlah argumen variabel dalam Python—menggunakan default, kata kunci, dan parameter sembarang untuk kode yang lebih bersih dan dapat disesuaikan.
Video: Python Function Arguments: Positional, Keywords and Default
Argumen
Dalam topik fungsi yang ditentukan pengguna, kami telah membahas mendefinisikan dan memanggil fungsi. Panggilan yang tidak cocok dengan tanda tangan yang diharapkan akan menghasilkan kesalahan. Contohnya:
def greet(name, msg): """Fungsi ini menyapa orang dengan pesan yang disediakan.""" print("Hello", name + ", " + msg) greet("Monica", "Good morning!")
Output
Hello Monica, Good morning!
Fungsi greet() menerima dua parameter. Memanggilnya dengan jumlah argumen yang benar berjalan lancar; jika tidak, interpreter memancarkan TypeError dengan pesan yang jelas.
>>> greet("Monica") # hanya satu argumen TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # tidak ada argumen TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'
Argumen Fungsi Variabel
Python menawarkan cara fleksibel untuk menerima sejumlah argumen yang variabel. Tiga pola umum dibahas di bawah ini.
Argumen Default Python
Parameter dapat diberikan nilai default menggunakan operator penugasan (=). Contoh berikut menunjukkan cara pesan opsional default ke “Good morning!”:
def greet(name, msg="Good morning!"): """ Fungsi ini menyapa orang dengan pesan yang disediakan. Jika pesan tidak disediakan, ia default ke "Good morning!". """ print("Hello", name + ", " + msg) greet("Kate") greet("Bruce", "How do you do?")
Output
Hello Kate, Good morning! Hello Bruce, How do you do?
Dalam definisi ini, name wajib, sementara msg opsional. Saat argumen default ada, semua parameter selanjutnya juga harus memiliki default; jika tidak, SyntaxError terjadi.
Python memungkinkan panggilan untuk menentukan argumen berdasarkan nama, memungkinkan fleksibilitas urutan posisi. Fungsi greet() yang sama dapat dipanggil sebagai berikut:
# 2 argumen kata kunci greet(name = "Bruce", msg = "How do you do?") # 2 argumen kata kunci (di luar urutan) greet(msg = "How do you do?", name = "Bruce") # 1 posisi, 1 argumen kata kunci greet("Bruce", msg = "How do you do?")
Campuran argumen posisi dan kata kunci diperbolehkan hanya ketika semua argumen posisi mendahului argumen kata kunci; jika tidak, SyntaxError terjadi.
greet(name="Bruce","How do you do?")
SyntaxError: non-keyword arg after keyword arg
Argumen Sembarang Python
Jika jumlah argumen tidak diketahui pada saat desain, gunakan bintang (*) untuk menangkapnya sebagai tuple:
def greet(*names): """Menyapa setiap nama dalam tuple yang disediakan.""" for name in names: print("Hello", name) greet("Monica", "Luke", "Steve", "John")
Output
Hello Monica Hello Luke Hello Steve Hello John
Di dalam fungsi, names adalah tuple yang berisi semua argumen yang diteruskan, yang kemudian dapat diulang atau diproses sesuai kebutuhan.