在定义函数时,在圆括号中声明的变量列表是形式参数。并且,这些参数也被称作位置参数。一个函数可以定义任意数量的形式参数。
在调用一个函数时:
位置参数的示例
让我们讨论一些位置参数的例子:
示例 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,...) |