如何定义可变参数和关键字参数的Python函数
发布时间:2023-07-25 07:23:52
在Python中,函数可以通过使用可变参数和关键字参数来接收不定数量的参数。可变参数允许函数接收任意数量的位置参数,而关键字参数允许函数接收任意数量的关键字参数。
1. 可变参数:
可变参数允许函数接收任意数量的位置参数。在函数定义中,使用星号(*)表示可变参数。可变参数在函数体内作为一个元组来使用。
例如,下面的函数定义示例中,sum函数接收任意数量的参数,并返回它们的和:
def sum(*args):
result = 0
for arg in args:
result += arg
return result
可以通过以下方式调用sum函数:
print(sum(1, 2, 3)) # 输出:6 print(sum(1, 2, 3, 4, 5)) # 输出:15
2. 关键字参数:
关键字参数允许函数接收任意数量的关键字参数。在函数定义中,使用两个星号(**)表示关键字参数。关键字参数在函数体内作为一个字典(键值对)来使用。
例如,下面的函数定义示例中,print_info函数接收名字和年龄作为位置参数,并接收任意数量的关键字参数,并打印出用户信息:
def print_info(name, age, **kwargs):
print("Name:", name)
print("Age:", age)
for key, value in kwargs.items():
print(key + ":", value)
可以通过以下方式调用print_info函数:
print_info("John", 25) # 输出:
# Name: John
# Age: 25
print_info("Jane", 30, city="New York", job="Engineer") # 输出:
# Name: Jane
# Age: 30
# city: New York
# job: Engineer
以上是可变参数和关键字参数的基本定义和使用方式。函数可以同时使用可变参数和关键字参数,例如:
def do_something(*args, **kwargs):
# 处理位置参数
for arg in args:
print(arg)
# 处理关键字参数
for key, value in kwargs.items():
print(key + ":", value)
这样,函数do_something可以接收任意数量的位置参数和关键字参数,并分别进行处理。
