在编写函数时,我们可能会存在不确定传入参数数量的情况。那么我们可以使用可变数量的参数。函数中可变数量的参数包括可变参数和关键字参数。
1、可变参数(*args):
可变参数允许函数接受任意数量的位置参数。在函数定义中,使用*args
来表示可变参数,它会将传入的所有位置参数打包成一个元组,如:
def my_function(*args):for arg in args:print(arg)my_function(1, 2, 3, 4) # 输出: 1 2 3 4
my_function('a', 'b', 'c') # 输出: a b c
2、关键字参数(**kwargs):
关键字参数允许函数接受任意数量的关键字参数。在函数定义中,使用**kwargs
来表示关键字参数,它会将传入的所有关键字参数打包成一个字典,如:
def my_function(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")my_function(name='Alice', age=30) # 输出: name: Alice, age: 30
my_function(city='New York', country='USA') # 输出: city: New York, country: USA
3、同时使用可变参数和关键字参数:
函数也可以同时接受可变参数和关键字参数,如:
def my_function(*args, **kwargs):for arg in args:print(arg)for key, value in kwargs.items():print(f"{key}: {value}")my_function(1, 2, 3, name='Alice', age=30)
# 输出:
# 1
# 2
# 3
# name: Alice
# age: 30
事实证明,定义函数时,在不确定参数数量时,采用可变参数和关键字参数是个很好用的方法。当然在确定函数所需参数时只需使用位置参数或命名关键字参数即可。