如何在Python中定义一个带有可变数量参数的函数?
发布时间:2023-12-03 17:51:08
在Python中,可以使用*args和**kwargs来定义带有可变数量参数的函数。
*args允许函数接受任意数量的非关键字参数。它将收集所有传递给函数的额外位置参数,并将它们作为元组传递给函数体中的代码。可以在函数定义中将*args放在参数列表中的任意位置。
例如,下面的例子定义了一个函数sum_numbers,它接受任意数量的数字作为参数,并返回它们的总和:
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
print(sum_numbers(1, 2, 3)) # 输出 6
print(sum_numbers(10, 20, 30, 40, 50)) # 输出 150
**kwargs允许函数接受任意数量的关键字参数。它将收集所有传递给函数的额外关键字参数,并将它们作为字典传递给函数体中的代码。可以在函数定义中将**kwargs放在参数列表中的任意位置。
例如,下面的例子定义了一个函数print_info,它接受任意数量的关键字参数,并将它们打印出来:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25) # 输出 name: Alice, age: 25
print_info(city="New York", country="USA", population=8000000) # 输出 city: New York, country: USA, population: 8000000
如果希望函数同时接受任意数量的位置参数和关键字参数,可以在函数定义中同时使用*args和**kwargs。
例如,下面的例子定义了一个函数print_info,它接受任意数量的位置参数和关键字参数,并将它们打印出来:
def print_info(*args, **kwargs):
for num in args:
print(num)
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(1, 2, 3, name="Alice", age=25) # 输出 1, 2, 3, name: Alice, age: 25
print_info(10, 20, city="New York", country="USA") # 输出 10, 20, city: New York, country: USA
