在Python中,可以定义一个函数,使得一个或多个参数不能通过关键字来接受它们的值。这样的参数被称为仅限位置参数。
为了让一个参数成为仅限位置参数,使用正斜杠(/)符号。这个符号之前的所有的参数都将被视为仅限位置参数。
Python内置的input()
函数就是一个仅限位置参数的例子。input
函数的语法如下:
input(prompt="")
prompt
是一个为用户提供的解释性字符串。然而,你不能在括号内使用prompt
关键字。
示例
在这个例子中,我们使用prompt
关键字,这将导致错误。
name = input(prompt="请输入你的名字 ")
执行此代码时,将显示以下错误消息:
name = input (prompt="请输入你的名字 ")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: input() 不接受关键字参数
仅限位置参数的示例
让我们通过一些示例来理解仅限位置参数:
示例 1
在这个例子中,我们在intr()
函数的两个参数后加上"/",使其都成为仅限位置参数。
def intr(amt, rate, /):
val = amt * rate / 100
return val
print(intr(316200, 4))
当你运行代码时,它将显示以下结果:
12648.0
示例 2
如果我们试图像关键字那样使用参数,Python将引发错误,如下例所示。
def intr(amt, rate, /):
val = amt * rate / 100
return val
print(intr(amt=1000, rate=10))
运行此代码时,将显示以下错误消息:
interest = intr(amt=1000, rate=10)
^^^^^^^^^^^^^^^^^^^^^^^
TypeError: intr() 接收到作为关键字参数传递的一些仅限位置参数: 'amt, rate'
示例 3
函数可以这样定义,即有一些仅限关键字参数和一些仅限位置参数。这里,x
是一个必需的仅限位置参数,y
是一个普通的仅限位置参数,而z
是一个仅限关键字参数。
def myfunction(x, /, y, *, z):
print(x, y, z)
myfunction(10, y=20, z=30)
myfunction(10, 20, z=30)
以上代码将显示以下输出:
10 20 30
10 20 30