欢迎访问宙启技术站
智能推送

如何在Python函数中使用默认参数与可变参数

发布时间:2023-09-24 02:28:47

在编写Python函数时,我们经常需要使用到参数。有时候,我们希望给函数的参数设置一些默认值,这样在调用函数时如果没有传入参数,就会使用默认值。这就是默认参数的概念。

默认参数的定义非常简单,只需要在函数的参数列表中给参数指定一个默认的值即可。例如:

def greet(name, message="Hello"):
    print(message, name)

greet("Alice")    # 输出:Hello Alice
greet("Bob", "Hi")    # 输出:Hi Bob

在上面的例子中,greet 函数的 message 参数有一个默认值 "Hello"。当我们调用 greet 函数时,可以传入一个值给 name 参数,而 message 参数可以选择性地传入。如果没有传入 message 参数,则使用默认值 "Hello"

除了默认参数,Python 还提供了一种特殊的参数类型,即可变参数。可变参数允许我们向函数传递任意数量的参数,这些参数将被封装为一个元组或列表的形式。

可变参数的定义是在参数前面加上一个 *(对于元组)或 **(对于字典)符号。例如:

def sum_numbers(*numbers):
    total = 0
    for num in numbers:
        total += num
    return total

print(sum_numbers(1, 2, 3))    # 输出:6
print(sum_numbers(4, 5, 6, 7))    # 输出:22

在上面的例子中,sum_numbers 函数定义了一个可变参数 numbers。我们可以向函数传递任意数量的参数,这些参数将被封装为一个元组。在函数内部,我们可以通过遍历这个元组来访问每一个参数,然后求和并返回结果。

当然,我们也可以使用 ** 符号来定义一个可变参数字典。例如:

def print_info(**info):
    for key, value in info.items():
        print(key, "->", value)

print_info(name="Alice", age=25, city="New York")
# 输出:
# name -> Alice
# age -> 25
# city -> New York

在上面的例子中,print_info 函数定义了一个可变参数字典 info。我们可以向函数传递任意数量的参数,这些参数将被封装为一个字典。在函数内部,我们可以通过遍历这个字典来访问每一个参数的键和值,并打印出来。

需要注意的是,默认参数和可变参数的作用范围是不同的。默认参数的作用范围是局部的,只在函数内部有效。而可变参数是在函数的参数列表中定义的,可以在函数内部直接使用。