Skip to content

参数和实参 (Parameters and Arguments)

python
def adder(f, s, t = None):
    """
    返回 f, s 和 t 的和。
    如果未提供 t,
    则返回 f 和 s 的和。
    """
    result = f + s
    if t is not None:
        result += t
    return result

定义上述函数后,现在让我们调用或调用该函数:

python
fst = 20
snd = 10
trd = 10
sm1 = adder(fst, snd, trd) # 位置参数调用
sm2 = adder(fst, snd) # 省略带默认值的参数 t
sm3 = adder(f=fst, s=snd, t=trd) # 关键字参数调用
sm4 = adder(s=snd, f=fst) # 关键字参数,顺序不重要

fst 被称为形参 (parameters),因为它们在函数定义中有确定的位置和名称。t 还是一个带有默认值的默认参数

实参 (arguments) 是在调用函数(或方法)时传递给函数的值。在上面的示例中,fstsndtrd 是实参。

当调用函数时,实参的值会传递给函数内部对应的形参。这些形参在函数内部充当局部变量 (local variables)

  • 对于 sm1sm3fst 的值赋给 fsnd 的值赋给 strd 的值赋给 t
  • 对于 sm2sm4fst 的值赋给 fsnd 的值赋给 s。由于没有提供第三个实参,t 使用其默认值 None

执行脚本后,sm1sm2 的值是:

python
>>> sm1
40
>>> sm2
30