預設參數
參數可以設定預設值。
基本用法
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
💻 程式碼編輯器
📤 執行結果
等待執行...