参数和实参 (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) # 关键字参数,顺序不重要
f
、s
和 t
被称为形参 (parameters),因为它们在函数定义中有确定的位置和名称。t
还是一个带有默认值的默认参数。
实参 (arguments) 是在调用函数(或方法)时传递给函数的值。在上面的示例中,fst
、snd
和 trd
是实参。
当调用函数时,实参的值会传递给函数内部对应的形参。这些形参在函数内部充当局部变量 (local variables)。
- 对于
sm1
和sm3
:fst
的值赋给f
,snd
的值赋给s
,trd
的值赋给t
。 - 对于
sm2
和sm4
:fst
的值赋给f
,snd
的值赋给s
。由于没有提供第三个实参,t
使用其默认值None
。
执行脚本后,sm1
和 sm2
的值是:
python
>>> sm1
40
>>> sm2
30