Python 函数只能关键字参数赋值
你可以将形参列表中的变量作为关键字来传递值。关键字参数的使用是可选的。但是,你可以强制函数只能通过关键字来给参数赋值。在关键字参数列表之前加一个星号(*)。
假设我们有一个函数有三个参数,我们希望第二个和第三个参数只能通过关键字来给定。为此,在第一个参数后面加上星号(*)。
内置的print()函数是关键字参数的一个例子。你可以在括号中给出要打印的表达式的列表。打印的值默认以空格分隔。你可以用sep参数指定其他分隔符。
print ("Hello", "World", sep="-")
它将打印−
Hello-World
sep 参数是仅限关键字参数。尝试将其用作非关键字参数。
print ("Hello", "World", "-")
您将获得不同的输出 – 不是您所期望的。
Hello World -
示例
下面是一个带有两个参数amt和rate的用户定义函数intr()。为了使 rate 参数只能通过关键字传递,将它放在前面加上*
。
def intr(amt,*, rate):
val = amt*rate/100
return val
要调用此函数,必须通过关键字传递 rate 的值。
interest = intr(1000, rate=10)
然而,如果你尝试使用默认的位置方式调用函数,会发生错误。
interest = intr(1000, 10)
^^^^^^^^^^^^^^
TypeError: intr() takes 1 positional argument but 2 were given