位置参数
定义函数时括号中声明的 List 变量是形式参数。而且,这些参数也称为位置参数。函数可以使用任意数量的形式参数进行定义。
在调用函数时 -
- 所有参数都是必需的。
- 实际参数的数量必须等于形式参数的数量。
- 它们按定义顺序选取值。
- 参数的类型必须匹配。
- 形式参数和实际参数的名称不必相同。
位置参数示例
让我们讨论一些位置参数的例子 -
示例 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 更改为 string 值并查看结果。
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
~^~
TypeError: can only concatenate str (not "int") to str
位置参数和关键字参数之间的区别
下表解释了位置参数和关键字参数之间的区别 -
位置参数 | 关键字参数 |
---|---|
仅使用参数的名称将数据传递给给定的函数。 | 关键字参数以 name=value 形式传递给函数。 |
参数按照函数声明中定义的顺序传递。 | 在传递参数时,可以更改它们的顺序。 |
语法: function(param1, param2,...) | 语法: function(param1 = value1,...) |