Python - 僅關鍵字引數



僅關鍵字引數

您可以使用變數 在正式引數列表中作為關鍵字傳遞值。使用關鍵字引數 是可選的。但是,您可以強制函式僅透過關鍵字接受引數。您應該在僅關鍵字引數列表之前放置一個星號 (*)。

假設我們有一個具有三個引數的函式,其中我們希望第二個和第三個引數為僅關鍵字引數。為此,在第一個引數之後放置 *。

僅關鍵字引數示例

內建 print() 函式 是僅關鍵字引數的一個示例。您可以將要列印的表示式列表放在括號中。預設情況下,列印的值以空格分隔。您可以使用"sep" 引數指定任何其他分隔符。

print ("Hello", "World", sep="-")

它將列印:

Hello-World

示例:使用 "sep" 作為非關鍵字引數

print() 函式的sep 引數是僅關鍵字引數。嘗試將其用作非關鍵字引數。

print ("Hello", "World", "-")

您將獲得不同的輸出,並非如預期的那樣:

Hello World -

在使用者定義的方法中使用僅關鍵字引數

要使引數僅為關鍵字引數,在建立使用者定義函式時,在其前面放置星號 (*)。

在給定類中由我們定義以執行某些操作的 Python 函式稱為使用者定義函式。它們不是 Python 預定義的。

示例

在下面的使用者定義函式"intr()" 中,"rate" 引數是僅關鍵字引數。要呼叫此函式,必須透過關鍵字傳遞 rate 的值。

def intr(amt,*, rate):
   val = amt*rate/100
   return val
   
interest = intr(1000, rate=10)
print(interest)
100.0

但是,如果您嘗試使用預設的位置呼叫方式呼叫上述函式,則會遇到錯誤。

示例

下面的程式碼顯示當需要僅關鍵字引數時,無法使用位置引數。

def intr(amt, *, rate):
   val = amt * rate / 100
   return val
   
interest = intr(1000, 10)
print(interest)

執行後,此程式碼將顯示以下結果:

interest = intr(1000, 10)
               ^^^^^^^^^^^^^^
TypeError: intr() takes 1 positional argument but 2 were given
廣告