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

Python中可变参数函数的使用方法

发布时间:2023-08-11 01:48:18

在Python中,可以使用可变参数函数来接受任意数量的参数。可变参数函数分为两种:*args和**kwargs。*args用于接受任意数量的非关键字参数,而**kwargs用于接受任意数量的关键字参数。

使用*args可变参数函数的方法如下:

1. 在函数定义时,在参数前添加一个\*,如def my_func(*args):

2. 在函数体内,可以使用args变量来访问所有的非关键字参数。args是一个元组(tuple)类型的对象。

3. 调用函数时,可以传递任意数量的参数作为非关键字参数,参数间用逗号隔开。

例如:

def sum(*args):
    total = 0
    for num in args:
        total += num
    return total

print(sum(1, 2, 3))  # 输出6
print(sum(4, 5, 6, 7))  # 输出22
print(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))  # 输出55

使用**kwargs可变参数函数的方法如下:

1. 在函数定义时,在参数前添加两个\*,如def my_func(**kwargs):

2. 在函数体内,可以使用kwargs变量来访问所有的关键字参数。kwargs是一个字典(dict)类型的对象,其中关键字是键,参数值是值。

3. 调用函数时,可以传递任意数量的关键字参数,参数形式是key=value

例如:

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

print_info(name="John", age=30, gender="male")
# 输出:
# name John
# age 30
# gender male

同时使用*args和**kwargs可变参数函数的方法如下:

1. 在函数定义时,先使用*args接收非关键字参数,再使用**kwargs接收关键字参数,如def my_func(*args, **kwargs):

2. 在函数体内,可以使用args和kwargs两个变量分别访问非关键字参数和关键字参数。

例如:

def print_info(*args, **kwargs):
    print("Non-keyword arguments:")
    for arg in args:
        print(arg)
    
    print("
Keyword arguments:")
    for key, value in kwargs.items():
        print(key, value)

print_info("John", 30, "male", city="New York", occupation="engineer")
# 输出:
# Non-keyword arguments:
# John
# 30
# male
#
# Keyword arguments:
# city New York
# occupation engineer

总结:可变参数函数能够接受任意数量的非关键字参数和关键字参数。通过使用\*args和\*\*kwargs来定义可变参数函数,可以灵活地处理不同数量和类型的参数。