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
广告