Python中不同类型的函数参数
在 Python 中,函数的参数传递方式灵活多样,下面详细介绍不同类型的函数参数及其使用方法:
1. 位置参数
位置参数是最常见的参数类型,调用函数时,按照参数定义的顺序依次传入对应的值。
def add_numbers(a, b):
return a + b
result = add_numbers(3, 5)
print(result)
在这个例子中,a 和 b 是位置参数,调用 add_numbers 函数时,3 会被赋值给 a,5 会被赋值给 b。
2. 默认参数
默认参数允许你为函数的参数指定默认值。如果调用函数时没有提供该参数的值,就会使用默认值。
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Alice"))
print(greet("Bob", "Hi"))
在 greet 函数中,greeting 是默认参数,默认值为 "Hello"。第一个调用没有提供 greeting 的值,所以使用默认值;第二个调用提供了 greeting 的值,所以使用传入的值。
3. 关键字参数
关键字参数允许你在调用函数时通过参数名来指定参数的值,这样就可以不按照参数定义的顺序传递参数。
def describe_person(name, age, city):
return f"{name} is {age} years old and lives in {city}."
result = describe_person(age=25, city="New York", name="Alice")
print(result)
在这个例子中,调用 describe_person 函数时,使用了关键字参数,明确指定了每个参数的值,因此可以不按照参数定义的顺序传递。
4. 可变位置参数
可变位置参数允许函数接受任意数量的位置参数。在参数名前加一个 * 来定义可变位置参数,这些参数会被收集到一个元组中。
def sum_numbers(*numbers):
total = 0
for num in numbers:
total += num
return total
result = sum_numbers(1, 2, 3, 4, 5)
print(result)
在 sum_numbers 函数中,*numbers 是可变位置参数,调用函数时可以传入任意数量的参数,这些参数会被收集到 numbers 元组中。
5. 可变关键字参数
可变关键字参数允许函数接受任意数量的关键字参数。在参数名前加两个 ** 来定义可变关键字参数,这些参数会被收集到一个字典中。
def describe_person(**info):
description = ""
for key, value in info.items():
description += f"{key}: {value}, "
return description.rstrip(", ")
result = describe_person(name="Alice", age=25, city="New York")
print(result)
在 describe_person 函数中,**info 是可变关键字参数,调用函数时可以传入任意数量的关键字参数,这些参数会被收集到 info 字典中。
6. 参数组合使用
在一个函数中可以同时使用多种类型的参数,但需要遵循一定的顺序:位置参数、默认参数、可变位置参数、关键字参数、可变关键字参数。
def example_function(a, b, c=3, *args, d=4, **kwargs):
print(f"a: {a}, b: {b}, c: {c}, args: {args}, d: {d}, kwargs: {kwargs}")
example_function(1, 2, 5, 6, 7, d=8, e=9, f=10)
在这个例子中,a 和 b 是位置参数,c 是默认参数,*args 是可变位置参数,d 是关键字参数,**kwargs 是可变关键字参数。

浙公网安备 33010602011771号