Python 中的可選引數

  1. Python 中有多個可選引數的函式
  2. 在 Python 中讓引數成為可選項
  3. 結論

在 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 中讓引數成為可選項

比方說,你有一個函式,它接受三個引數 namenumberage 作為輸入。

# 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)。

如果你不想把你的年齡作為引數傳給上面的函式,你可以使用一個叫做[可選引數]的東西(https://www.programiz.com/python-programming/function-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 中被稱為可選引數或可選引數。

但是如果你在呼叫函式的時候向可選引數中傳遞了一些值,那麼函式就會取這個新的值而不是預設值。

相關文章 - Python Function

  • 在 Python 中獲取函式名
  • Python 中的函式過載