Python - 位置参数



位置参数

在定义函数时,在括号中声明的变量列表是形式参数。这些参数也被称为位置参数。一个函数可以定义任意数量的形式参数。

调用函数时 -

  • 所有参数都是必需的。

  • 实际参数的数量必须等于形式参数的数量。

  • 它们按定义顺序获取值。

  • 参数的类型必须匹配。

  • 形式参数和实际参数的名称不必相同。

位置参数示例

让我们讨论一些位置参数的示例 -

示例 1

以下示例显示了位置参数的使用。

def add(x,y):
   z = x+y
   print ("x={} y={} x+y={}".format(x,y,z))
a = 10
b = 20
add(a, b)

它将产生以下输出 -

x=10 y=20 x+y=30

这里,add() 函数有两个形式参数,都是数字。当传递整数 10 和 20 时。"a" 变量获取 10,"b" 变量获取 20,按照声明的顺序。 add() 函数显示加法结果。

示例 2

当参数数量不匹配时,Python 也会引发错误。如果您只提供一个参数并检查结果,您将看到一个错误。

def add(x,y):
   z=x+y
   print (z)
a=10;
add(a)

生成的错误如下所示 -

TypeError: add() missing 1 required positional argument: 'y'

示例 3

类似地,如果您传递的参数数量超过形式参数的数量,将生成一个说明相同的错误 -

def add(x,y):
   z=x+y
   print ("x={} y={} x+y={}".format(x,y,z))
add(10, 20, 30)

以下是输出 -

TypeError: add() takes 2 positional arguments but 3 were given

示例 4

相应的实际参数和形式参数的数据类型必须匹配。将 a 更改为字符串值并查看结果。

def add(x,y):
   z=x+y
   print (z)
a="Hello"
b=20
add(a,b)

它将产生以下错误 -

z=x+y
     ~^~
TypeError: can only concatenate str (not "int") to str

位置参数和关键字参数之间的区别

下表解释了位置参数和关键字参数之间的区别 -

位置参数 关键字参数
仅使用参数名称将数据传递给给定函数。 关键字参数以 name=value 的形式传递给函数。
参数按函数声明中定义的顺序传递。 传递参数时,可以更改其顺序。

语法:function(param1, param2,...) 语法:function(param1 = value1,...)
广告