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 中被稱為可選引數或可選引數。
但是如果你在呼叫函式的時候向可選引數中傳遞了一些值,那麼函式就會取這個新的值而不是預設值。
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn