仅位置参数
在 Python 中可以定义一个函数,其中一个或多个参数不能用关键字接受它们的值。此类参数称为仅位置参数。
要使参数仅位置,请使用正斜杠 (/) 符号。此符号之前的所有参数都将被视为仅位置。
Python 的内置 input() 函数是仅位置参数的一个例子。
input 函数的语法是:
input(prompt = "")
Prompt 是一个说明字符串,旨在方便用户使用。但是,不能在括号内使用 prompt 关键字。
例在此示例中,我们使用 prompt 关键字,这将导致错误。
name = input(prompt="Enter your name ")
在执行时,此代码将显示以下错误消息 - <>
name = input (prompt="Enter your name ")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: input() takes no keyword arguments
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: input() takes no keyword arguments
仅位置参数示例
让我们通过一些示例来理解仅位置参数 -
示例 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() got some positional-only arguments passed as keyword arguments: 'amt, rate'
^^^^^^^^^^^^^^^^^^^^^^^
TypeError: intr() got some positional-only arguments passed as keyword arguments: '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
10 20 30