Argumen opsional dalam fungsi di python

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

  1. Pengantar seri. Apakah Anda tahu semua terminologi fungsi Anda dengan baik?
  2. Memilih apakah akan menggunakan argumen posisi atau kata kunci saat memanggil fungsi
  3. [Artikel ini] Menggunakan argumen opsional dengan menyertakan nilai default saat mendefinisikan suatu fungsi
  4. 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
  5. Menggunakan argumen hanya posisional dan argumen khusus kata kunci. garis miring / atau tanda bintang * "nakal" dalam tanda tangan fungsi
  6. Ketik petunjuk dalam fungsi
  7. 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

def greet_person(person, number):
    for greeting in range(number):
        print(f"Hello {person}! How are you doing today?")

# 1.
greet_person("Sara", 5)

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 argument

Perhatikan 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)
0

Inilah 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)
_1

Dan 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)
_2

Keluaran

def greet_person(person, number):
    for greeting in range(number):
        print(f"Hello {person}! How are you doing today?")

# 1.
greet_person("Sara", 5)
_3

Banyak 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

Apa argumen opsional di Python?

Argumen Opsional dengan Python . Nilai default untuk argumen dapat ditentukan menggunakan operator penugasan. Saat memanggil fungsi, tidak ada persyaratan untuk memberikan nilai untuk argumen opsional. An argument in Python that has a default value is called an optional argument. A default value for an argument can be specified using the assignment operator. When calling a function, there is no requirement to provide a value for an optional argument.

Apa argumen opsional dalam fungsi?

Argumen opsional memungkinkan Anda menghilangkan argumen untuk beberapa parameter . Kedua teknik tersebut dapat digunakan dengan metode, pengindeks, konstruktor, dan delegasi. Saat Anda menggunakan argumen bernama dan opsional, argumen dievaluasi sesuai urutan kemunculannya dalam daftar argumen, bukan daftar parameter.

Bisakah suatu fungsi memiliki parameter opsional?

Parameter opsional sangat bagus untuk menyederhanakan kode, dan menyembunyikan fungsi lanjutan namun tidak sering digunakan . Jika sebagian besar waktu Anda memanggil fungsi menggunakan nilai yang sama untuk beberapa parameter, Anda harus mencoba menjadikan parameter tersebut opsional untuk menghindari pengulangan.

Bagaimana Anda menunjukkan argumen opsional?

Untuk menunjukkan argumen opsional, Kurung siku biasanya digunakan, dan juga dapat digunakan untuk mengelompokkan parameter yang harus ditentukan bersama. Untuk menunjukkan argumen yang diperlukan, tanda kurung siku biasanya digunakan, mengikuti konvensi pengelompokan yang sama dengan tanda kurung siku.