Argumen Fungsi Python (Default, Kata Kunci, dan Arbitrase)

Dengan Python, Anda dapat menentukan fungsi yang menggunakan sejumlah variabel dari argumen. Pada artikel ini, Anda akan belajar mendefinisikan fungsi-fungsi tersebut menggunakan argumen default, kata kunci, dan arbitrer.

Video: Argumen Fungsi Python: Posisi, Kata Kunci dan Default

Argumen

Dalam topik fungsi yang ditentukan pengguna, kita belajar tentang mendefinisikan fungsi dan memanggilnya. Jika tidak, pemanggilan fungsi akan menghasilkan kesalahan. Berikut ini contohnya.

 def greet(name, msg): """This function greets to the person with the provided message""" print("Hello", name + ', ' + msg) greet("Monica", "Good morning!")

Keluaran

 Halo Monica, Selamat pagi!

Di sini, fungsinya greet()memiliki dua parameter.

Karena kami telah memanggil fungsi ini dengan dua argumen, ini berjalan dengan lancar dan kami tidak mendapatkan kesalahan apa pun.

Jika kita menyebutnya dengan jumlah argumen yang berbeda, interpreter akan menampilkan pesan error. Di bawah ini adalah panggilan ke fungsi ini dengan satu dan tanpa argumen bersama dengan pesan kesalahannya masing-masing.

 >>> greet ("Monica") # hanya satu argumen TypeError: greet () tidak memiliki 1 argumen posisi yang diperlukan: 'msg'
 >>> greet () # tidak ada argumen TypeError: greet () kehilangan 2 argumen posisi yang diperlukan: 'name' dan 'msg'

Argumen Fungsi Variabel

Hingga saat ini, fungsi memiliki sejumlah argumen tetap. Di Python, ada cara lain untuk mendefinisikan fungsi yang dapat menggunakan sejumlah variabel argumen.

Tiga bentuk berbeda dari jenis ini dijelaskan di bawah.

Argumen Default Python

Argumen fungsi dapat memiliki nilai default dengan Python.

Kita bisa memberikan nilai default ke argumen dengan menggunakan operator penugasan (=). Berikut ini contohnya.

 def greet(name, msg="Good morning!"): """ This function greets to the person with the provided message. If the message is not provided, it defaults to "Good morning!" """ print("Hello", name + ', ' + msg) greet("Kate") greet("Bruce", "How do you do?")

Keluaran

Halo Kate, Selamat pagi! Halo Bruce, Bagaimana kabarmu?

Dalam fungsi ini, parameter nametidak memiliki nilai default dan diperlukan (wajib) selama panggilan.

Di sisi lain, parameter msgmemiliki nilai default "Good morning!". Jadi, ini opsional selama panggilan. Jika nilai diberikan, nilai tersebut akan menimpa nilai default.

Sejumlah argumen dalam suatu fungsi dapat memiliki nilai default. Tapi begitu kita memiliki argumen default, semua argumen di sebelah kanannya juga harus memiliki nilai default.

Artinya, argumen non-default tidak dapat mengikuti argumen default. Misalnya, jika kita telah mendefinisikan header fungsi di atas sebagai:

 def greet (msg = "Selamat pagi!", nama):

Kami akan mendapatkan kesalahan sebagai:

 SyntaxError: argumen non-default mengikuti argumen default

Argumen Kata Kunci Python

Saat kita memanggil fungsi dengan beberapa nilai, nilai-nilai ini ditugaskan ke argumen sesuai dengan posisinya.

Misalnya, dalam fungsi di atas greet(), ketika kita memanggilnya sebagai greet("Bruce", "How do you do?"), nilai "Bruce"diberikan ke nama argumen dan serupa "How do you do?"dengan msg.

Python memungkinkan fungsi dipanggil menggunakan argumen kata kunci. Saat kita memanggil fungsi dengan cara ini, urutan (posisi) argumen dapat diubah. Setelah panggilan ke fungsi di atas semuanya valid dan menghasilkan hasil yang sama.

 # 2 keyword arguments greet(name = "Bruce",msg = "How do you do?") # 2 keyword arguments (out of order) greet(msg = "How do you do?",name = "Bruce") 1 positional, 1 keyword argument greet("Bruce", msg = "How do you do?") 

Seperti yang bisa kita lihat, kita bisa mencampur argumen posisi dengan argumen kata kunci selama pemanggilan fungsi. Tetapi kita harus ingat bahwa argumen kata kunci harus mengikuti argumen posisi.

Memiliki argumen posisi setelah argumen kata kunci akan menghasilkan kesalahan. Misalnya, panggilan fungsi sebagai berikut:

 greet(name="Bruce","How do you do?")

Akan mengakibatkan kesalahan:

 SyntaxError: non-kata kunci arg setelah kata kunci arg

Argumen Sewenang-wenang Python

Terkadang, kita tidak mengetahui sebelumnya jumlah argumen yang akan diteruskan ke suatu fungsi. Python memungkinkan kita untuk menangani situasi semacam ini melalui pemanggilan fungsi dengan sejumlah argumen yang berubah-ubah.

Dalam definisi fungsi, kami menggunakan tanda bintang (*) sebelum nama parameter untuk menunjukkan jenis argumen ini. Berikut ini contohnya.

 def greet(*names): """This function greets all the person in the names tuple.""" # names is a tuple with arguments for name in names: print("Hello", name) greet("Monica", "Luke", "Steve", "John")

Keluaran

 Halo Monica Halo Luke Halo Steve Halo John

Di sini, kami telah memanggil fungsi dengan banyak argumen. Argumen ini dibungkus menjadi tupel sebelum diteruskan ke fungsi. Di dalam fungsinya, kami menggunakan forperulangan untuk mengambil kembali semua argumen.

Artikel yang menarik...