Kami melanjutkan perjalanan kami melalui fungsi Python dengan melihat argumen opsional dan nilai default
Di artikel ini, Anda akan melihat cara menentukan fungsi dengan argumen opsional. Nilai default digunakan jika argumen tidak disertakan dalam pemanggilan fungsi
Ikhtisar Seri Fungsi Menengah Python
Berikut ikhtisar tujuh artikel dalam seri ini
- Pengantar seri. Apakah Anda tahu semua terminologi fungsi Anda dengan baik?
- Memilih apakah akan menggunakan argumen posisi atau kata kunci saat memanggil fungsi
- [Artikel ini] Menggunakan argumen opsional dengan menyertakan nilai default saat mendefinisikan suatu fungsi
- Menggunakan sejumlah argumen posisi dan kata kunci opsional. def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)4 dan def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)5
- Menggunakan argumen hanya posisional dan argumen khusus kata kunci. garis miring / atau tanda bintang * "nakal" dalam tanda tangan fungsi
- Ketik petunjuk dalam fungsi
- Praktik terbaik saat mendefinisikan dan menggunakan fungsi
Menggunakan Argumen Opsional Dengan Nilai Default
Mari membangun fungsi yang sama yang digunakan di artikel sebelumnya di seri ini
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5) # 2. greet_person("Kevin")Salah satu panggilan ini menimbulkan kesalahan. Bisakah Anda menebak yang mana?
Mari kita lihat yang pertama. Panggilan pertama berfungsi dengan baik. Ini menggunakan dua argumen posisi
Keluarannya adalah
Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today?_Namun, panggilan kedua menimbulkan kesalahan
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 2. greet_person("Kevin")Keluarannya adalah
Traceback (most recent call last): File "...", line 6, in <module> greet_person("Kevin") TypeError: greet_person() missing 1 required positional argument: 'number'_Di sinilah mengetahui istilah yang kami perkenalkan di artikel sebelumnya membantu. Kata kesalahan
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)_6
Anda mengatakan Anda akan memberikan dua argumen saat Anda mendefinisikan fungsi tetapi hanya memberikan satu. Python tidak bisa hidup dengan itu, bisa dimengerti. Ada informasi yang hilang. Oleh karena itu, tidak dapat menjalankan fungsi
Namun, Anda dapat menentukan fungsi sehingga parameter def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)7 memiliki nilai default. Ini menjadikan argumen posisi kedua sebagai argumen opsional
def greet_person(person, number=2): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5) # 2. greet_person("Kevin")_Outputnya sekarang baik untuk kedua panggilan
Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Sara! How are you doing today? Hello Kevin! How are you doing today? Hello Kevin! How are you doing today?Di tanda tangan fungsi, Anda menambahkan nilai default menggunakan tanda sama dengan tepat setelah nama parameter def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)7. Artinya, jika Anda tidak memberikan argumen untuk parameter ini, nilai default 2 akan digunakan. Jika Anda memberikan argumen posisi kedua, argumen itu akan digunakan, seperti dalam panggilan
greet_person("Sara", 5)Parameter Dengan Nilai Default Harus Datang Setelah Yang Tanpa
Sekarang, untuk beberapa aturan Anda tidak bisa melanggar. Saat Anda menentukan fungsi, Anda tidak dapat menempatkan parameter dengan nilai default sebelum parameter yang tidak memiliki default
def greet_person(number=2, person): for greeting in range(number): print(f"Hello {person}! How are you doing today?")Ketika Anda menjalankan ini, Anda mendapatkan kesalahan
File "...", line 1 def greet_person(number=2, person): ^^^^^^ SyntaxError: non-default argument follows default argumentPerhatikan bahwa dalam kasus ini, kesalahan dimunculkan saat mendefinisikan fungsi dan bukan saat memanggilnya. Pesan kesalahan membantu menyatakan apa masalahnya
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)_9
Termasuk Lebih Banyak Argumen Opsional
Anda dapat memiliki kedua parameter dengan nilai default jika Anda mau. Ini berarti Anda dapat memanggil fungsi tanpa argumen, satu argumen, atau kedua argumen
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)0Inilah output yang menunjukkan ketiga panggilan fungsi bekerja dengan baik
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)_1Dan karena kedua argumen bersifat opsional, Anda bahkan dapat memanggil fungsi hanya menggunakan argumen kedua tetapi bukan yang pertama. Namun, untuk melakukan ini, Anda harus menggunakan argumen bernama dan bukan argumen posisi
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)_2Keluaran
def greet_person(person, number): for greeting in range(number): print(f"Hello {person}! How are you doing today?") # 1. greet_person("Sara", 5)_3Banyak Cara Mengacu Pada Hal Yang Sama
Catatan tentang terminologi. Anda akan menemukan beberapa cara orang mengacu pada konsep ini
- argumen opsional. Anda memiliki pilihan apakah akan memasukkan nilai sebagai argumen atau tidak saat memanggil fungsi
- parameter dengan nilai default. parameter dalam definisi fungsi memiliki nilai default
- argumen bawaan. definisi fungsi sudah memiliki argumen yang siap digunakan sebagai default jika diperlukan
- parameter default atau parameter opsional. ini juga digunakan, meskipun secara teknis salah. Parameternya selalu ada. Itu argumen yang opsional dan memiliki nilai default
Tapi saran saya jangan terlalu khawatir tentang teknis ini pada awalnya
Kata Akhir
Fungsi dengan parameter opsional memberikan lebih banyak fleksibilitas kepada pengguna yang memanggil fungsi tersebut. Itu membuat fungsi lebih mudah digunakan karena dapat digunakan hanya dengan argumen yang diperlukan sambil tetap memungkinkan pengguna untuk memasukkan argumen opsional