預設參數

參數可以設定預設值。

基本用法

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("Alice")           # Hello, Alice!
greet("Bob", "Hi")      # Hi, Bob!

規則

# 預設參數必須在非預設參數後面
def func(a, b=10, c=20):  # ✓ 正確
    pass

def func(a=10, b):  # ✗ 錯誤
    pass

注意:可變預設值

# 錯誤!預設值是共享的
def add_item(item, lst=[]):
    lst.append(item)
    return lst

print(add_item(1))  # [1]
print(add_item(2))  # [1, 2] 不是 [2]!

# 正確做法
def add_item(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst

練習

寫一個計算價格的函數,預設折扣為 0

💻 程式碼編輯器
📤 執行結果
等待執行...
← 上一課 下一課 →