HOWTO · Python
Python 中的可選引數
本文為大家講解 python 中的可選引數,以及如何在 python 中使用這些引數。
本頁內容
在 Python 中,有一種東西叫做預設引數。它在 python 中也被稱為可選引數或可選引數。引數是指一個函式的輸入。
Python 中有多個可選引數的函式
每當你呼叫一個函式的時候,你必須向該函式傳遞一些引數,這取決於函式是否接受任何引數。傳遞引數給一個函式並不是強制性的,一個函式可以不接受任何引數,也可以接受任何數量的引數(取決於函式如何使用)。一個函式可以不接受任何引數,也可以接受任何數量的引數(取決於函式是如何定義的)。我們有兩種方式可以傳遞多個引數。
使用*args(非關鍵字引數)
# Function Defination
def myfunction(first_name, last_name, *args):
print(first_name)
print(last_name)
for argument in args:
print(argument)
# Calling the Function
myfunction("Tim", "White", 999888999, 30)
輸出:
Tim
White
999888999
30
使用**kargs(關鍵字引數)
def myFunction(**kwargs):
# printing all values which are passed in as an argument
for key, value in kwargs.items():
print("%s = %s" % (key, value))
# Calling the Function
myFunction(first_name="Tim", last_name="White", mob=99999999, age="30")
輸出:
first_name = Tim
last_name = White
mob = 99999999
age = 30
*args 和**kargs 都是可變長度的引數,用於向函式傳遞可變數量的引數。
當你建立一個函式時,你必須定義它將接受多少引數或引數作為輸入。這些被稱為形式引數。而每當你呼叫該函式時,你必須向該函式傳遞一些值,這些值被稱為實際引數。
在 Python 中讓引數成為可選項
比方說,你有一個函式,它接受三個引數 name,number 和 age 作為輸入。
# Function Defination
def personalDetails(name, number, age):
print("This function takes 3 parameters as input")
如果你想呼叫函式 personalDetails,你必須把這 3 個引數作為輸入傳給該函式。
def personalDetails(name, number, age):
print("This function takes 3 parameters as input")
print("Name: ", name)
print("Number: ", number)
print("Age: ", age)
# Calling the function
personalDetails("Adam", 987654321, 18)
輸出:
This function takes 3 parameters as input
Name: Adam
Number: 987654321
Age: 18
在這裡,當呼叫一個函式時,如果你遺漏或忘記傳遞任何一個引數,你會得到一個錯誤(TypeError: personalDetails missing a required positional argument)。
如果你不想把你的年齡作為引數傳給上面的函式,你可以使用一個叫做可選引數的東西。在 Python 中,你可以使任何數量的引數或引數成為可選的。要使一個引數成為可選的,你必須給這個引數分配一些預設值。
在這裡,為了使 age 引數成為可選的,你可以在函式定義中為 age 引數新增一個預設值,使其成為可選的。在這種情況下,讓我們用 0 或任何其他你想要的值來初始化它。現在,Python 會將這個引數視為一個可選引數。所以,即使你不給 age 引數傳遞任何值,函式也會工作,它會使用預設值,在本例中是 0。
def personalDetails(name, number, age=0):
print("Age is now an optional argument.")
print("Age is: ", age)
# Calling the function
personalDetails("Sam", 123456789)
輸出:
Age is now an optional argument.
Age is: 0
即使你想在呼叫函式 personalDetails 時指定 age 引數的值,你也可以這樣做。現在它將考慮你指定的新值,而不是預設值。
def personalDetails(name, number, age=0):
print("Age is now an optional argument.")
print("Age is: ", age)
# Calling the function
personalDetails("Sam", 123456789, 25)
輸出:
Age is now an optional argument.
Age is: 25
まとめ
每當你用一個預設值初始化任何引數時,它就被稱為預設引數。這最終使得該引數也變成了可選的,因為現在在呼叫函式的時候,並不是必須給該引數傳入一個值。這在 Python 中被稱為可選引數或可選引數。
但是如果你在呼叫函式的時候向可選引數中傳遞了一些值,那麼函式就會取這個新的值而不是預設值。