跳到主要内容

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 个位置参数。

1. 位置参数实例

1.1 函数没有任何位置参数