在 Python 中,函数可以接受可变数量的参数,通常通过 *args
和 **kwargs
来实现。
-
*args
:可变位置参数
使用*args
可以传递任意数量的位置参数。它会将这些参数打包成一个元组(tuple)供函数使用。示例:
def my_function(*args):for arg in args:print(arg)my_function(1, 2, 3, 'Python')
输出:
1 2 3 Python
在这个例子中,
my_function
可以接受任意数量的参数,并逐个打印。 -
**kwargs
:可变关键字参数
使用**kwargs
可以传递任意数量的关键字参数,它会将这些参数打包成一个字典(dictionary)。示例:
def my_function(**kwargs):for key, value in kwargs.items():print(f'{key} = {value}')my_function(name='Alice', age=30, language='Python')
输出:
name = Alice age = 30 language = Python
在这个例子中,
my_function
可以接受任意数量的关键字参数,并以键值对的形式打印。 -
*args
和**kwargs
组合使用
可以同时使用*args
和**kwargs
来接收任意数量的参数和关键字参数。示例:
def my_function(*args, **kwargs):print("Positional arguments:", args)print("Keyword arguments:", kwargs)my_function(1, 2, 3, name='Alice', age=30)
输出:
Positional arguments: (1, 2, 3) Keyword arguments: {'name': 'Alice', 'age': 30}
这让函数非常灵活,可以处理不同数量和类型的参数,常用于构建通用函数或框架。