Python 简明教程

Python - Keyword-Only Arguments

Keyword-Only Arguments

您可以将 variables 用作形式参数列表中的关键字来传递值。使用 keyword arguments 是可选的。但是,您可以强制该函数仅接受关键字参数。您应当在仅关键字参数列表前放置一个星号 (*)。

假设我们有一个具有三个参数的函数,我们希望其中的第二个和第三个参数是仅关键字。为此,在第一个参数后放置 *。

Example of Keyword-Only Arguments

built-in print() function 是仅关键字参数的一个示例。您可以提供要打印在括号中的表达式列表。默认情况下,打印的值由一个空格分隔。您可以使用“sep”参数指定其他任意分隔字符。

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

它将打印 −

Hello-World

Example: Using "sep" as non-keyword Argument

print() 函数的 sep 参数是仅关键字。尝试将其用作非关键字参数。

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

您将获得不同的输出,而非所需输出 −

Hello World -

Using Keyword-Only argument in User-Defined Method

要想使参数成为仅关键字,在创建用户定义函数时在其前放置星号 (*)。

用户定义函数是指我们在给定类中定义的用来执行特定操作的 Python 函数。它们并非由 Python 预定义。

Example

在以下用户定义函数“intr()”中,“rate”参数是仅关键字。要调用此函数,rate 的值必须通过关键字传递。

def intr(amt,*, rate):
   val = amt*rate/100
   return val

interest = intr(1000, rate=10)
print(interest)
100.0

但是,如果您尝试使用默认的位置调用方式来调用上述函数,则会遇到错误。

Example

以下代码表明在需要仅关键字参数时无法使用位置参数。

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