Python - 仅位置参数



仅位置参数

在 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

仅位置参数示例

让我们通过一些示例来理解仅位置参数 -

示例 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'

示例 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