Python - 仅关键字参数



仅关键字参数

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

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

仅关键字参数示例

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


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

它将打印 -

Hello-World

示例:使用 “sep” 作为非关键字参数

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


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

你会得到不同的输出,而不是像你想要的那样 -

Hello World -

在用户定义的方法中使用仅关键字参数

要使参数仅关键字,请在创建用户定义函数时将 astreisk (*) 放在其前面。

我们在给定类中定义为执行某些操作的那些 Python 函数称为用户定义函数。它们不是由 Python 预定义的。

在下面的用户定义函数 “intr()” 中,“rate” 参数仅是关键字。要调用此函数,必须通过 keyword 传递 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