Python 中的函数参数
在通常情况下,定义函数时,函数的参数个数是预先确定的。例如,编写计算两个数相加的函数 add(a, b),代码如下:
def add(a, b):
return a + b
sum = add(1, 2)
- 在第 1 行,定义了函数 add,函数有两个参数,第 1 个参数是 a,第 2 个参数是 b
- 在第 2 行,计算参数 a 和 参数 b 的累加和,通过 return 语句将计算结果返回给调用者
- 在第 4 行,通过 add(1, 2) 调用函数 add
- 将整数 1 传递给第 1 个参数 a
- 将整数 2 传递给第 2 个参数 b
传入的两个整数按照位置顺序依次赋给函数的参数 a 和 b,参数 a 和参数 b 被称为位置参数。
在 Python 中,调用函数时,根据函数定义的参数位置来传递参数,要求传递的参数与函数定义的参数两者一一对应,如果 “传递的参数个数” 不等于 “函数定义的参数个数”,运行时会报错,例如:
def add(a, b):
return a + b
sum = add(1, 2, 3)
- 在第 1 行,定义了函数 add,函数有 2 个参数
- 在第 4 行,通过 add(1, 2, 3) 调用函数 add,传递了 3 个参数
因为 “传递的参数个数” 不等于 “函数定义的参数个数”,运行时报错如下:
C:\> python add.py
Traceback (most recent call last):
File "error.py", line 4, in <module>
sum = add(1, 2, 3)
TypeError: add() takes 2 positional arguments but 3 were given
在第 5 行,运行时提示:函数 add 有 2 个位置参数,但是调用时传递了 3 个位置参数。