Python - 仅关键字参数


您可以使用形式参数列表中的变量作为关键字来传递值。关键字参数的使用是可选的。但是,您可以强制函数仅通过关键字给出参数。您应该在仅关键字参数列表之前放置一个星号 (*)。

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

内置 print() 函数是仅关键字参数的示例。您可以在括号中给出要打印的表达式列表。默认情况下,打印的值由空格分隔。您可以使用 sep 参数指定任何其他分隔字符。

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

它将打印 -

Hello-World

sep参数仅是关键字。尝试将其用作非关键字参数。

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

你会得到不同的输出——不符合预期。

Hello World -

例子

在下面的用户定义函数 intr() 中,有两个参数:amt 和rate。要使速率参数仅包含关键字,请在其前面添加“*”。

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

要调用此函数,必须通过关键字传递速率值。

interest = intr(1000, rate=10)

但是,如果您尝试使用默认的位置方式来调用该函数,则会出现错误。

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