如何定义带有可变参数的 Python 函数
发布时间:2023-05-23 07:48:00
Python 支持可变参数函数,可以接受任意数量的参数。在 Python 中,有两种类型的可变参数函数:*args 和 **kwargs。
*args 用于传递任意数量的非关键词参数,其表示形式为一个星号(*),后跟一个参数名。当函数被调用时,所有非关键词参数都被收集到一个元组中,并赋值给 args。这样在函数内部,就可以使用类似于列表解包的方式访问这些参数,例如 args[0],args[1] 等。
示例:
def my_function(*args):
for arg in args:
print(arg)
my_function('a', 'b', 'c')
输出:
a b c
**kwargs 则用于传递任意数量的关键词参数,其表示形式为两个星号(**),后跟一个参数名。当函数被调用时,所有关键词参数都被收集到一个字典中,并赋值给 kwargs。这样在函数内部,就可以使用关键词参数名称作为键,访问这些参数,例如 kwargs['name']。
示例:
def my_function(**kwargs):
for key, value in kwargs.items():
print(key, value)
my_function(name='Jack', age=25)
输出:
name Jack age 25
同时,我们还可以定义一个同时包含 *args 和 **kwargs 参数的函数:
def my_function(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(key, value)
my_function('a', 'b', 'c', name='Jack', age=25)
输出:
a b c name Jack age 25
需要注意的是,在函数定义时,必须将 *args 放在所有其他参数的前面,**kwargs 则必须放在最后面。
总之,带有可变参数的 Python 函数可以接收任意数量的参数,这些参数包括非关键词参数、关键词参数或两者同时使用。使用 *args 和 **kwargs 参数可以使代码更具通用性和可扩展性,同时也方便了程序员的编码工作。
