在Python中,可選引數(也稱為預設引數或關鍵字引數)是在定義函式時可以指定的引數,它們在呼叫函式時可以省略。如果呼叫者沒有提供這些引數,Python會使用這些引數的預設值。
可選引數有兩種形式:
-
預設值引數:在函式定義中,你可以透過在引數後面指定一個預設值來定義一個可選引數。如果函式呼叫時沒有提供該引數,Python會使用這個預設值。
-
可變引數:使用
*args
和**kwargs
,它們允許你定義一個函式,該函式可以接收任意數量的位置引數和關鍵字引數。
示例
預設值引數
def greet(name, message="Hello"):
print(f"{message}, {name}!")
# 使用預設的訊息
greet("Alice")
# 指定訊息
greet("Bob", "Good morning")
在這個例子中,message
是一個可選引數,它有一個預設值"Hello"
。如果沒有提供message
,函式會使用預設值。
可變引數
def make_pizza(*toppings):
print("Making a pizza with the following toppings:")
for topping in toppings:
print(f" - {topping}")
# 不指定配料
make_pizza()
# 指定配料
make_pizza("mushrooms", "green peppers", "extra cheese")
在這個例子中,*toppings
是一個可變引數,它允許函式接收任意數量的位置引數。
關鍵字引數
def build_profile(first, last, **user_info):
profile = {'first_name': first, 'last_name': last}
for key, value in user_info.items():
profile[key] = value
return profile
user_profile = build_profile('albert', 'einstein',
location='princeton',
field='physics')
print(user_profile)
在這個例子中,**user_info
是一個關鍵字引數,它允許函式接收任意數量的關鍵字引數。
使用可選引數可以提高函式的靈活性,使得呼叫者可以根據自己的需要提供引數,而不必每次都提供所有引數。