在Python中,函数参数可以按照位置或关键字来传递。这导致了两种主要的参数类型:位置参数和关键字参数。
-
位置参数:
- 这是最常见的参数类型,当我们调用函数时,传递给函数的参数值是按照它们的位置来确定的。
- 例如,
def func(a, b):
这里的a
和b
都是位置参数。 - 当我们调用
func(1, 2)
时,1 会传递给a
,而 2 会传递给b
,因为这是它们在参数列表中的位置。
-
关键字参数:
- 与位置参数不同,关键字参数是根据参数的名称,而不是位置来传递的。
- 例如,使用上面的函数,我们可以通过调用
func(b=2, a=1)
来传递参数。注意这里我们交换了a
和b
的位置,但由于我们明确指定了参数的名称,所以1
仍然被传递给a
,2
被传递给b
。 - 关键字参数通常用于当一个函数有许多参数或默认值时,以确保传递参数的清晰性或当我们只想提供某几个参数的值时。
在Python中,也可以使用默认参数值,这使得参数在调用函数时变得可选。例如:
def func(a, b=10):return a + bprint(func(5)) # 输出 15,因为b使用了默认值10
print(func(5, 2)) # 输出 7,因为b的值被覆盖为2
此外,Python还支持*args
来接受任意数量的位置参数,以及**kwargs
来接受任意数量的关键字参数。这为函数调用提供了极大的灵活性。