当我们要传递一个变长参数列表时,通常常用两种方式实现:
- 使用*args
*args是用来传递一个可变长度的非关键字参数列表,它会把所以传入的参数全部封装成一个元组,我们可以在函数内部通过遍历这个元组实现对传参的操作。
def foo(*args):
for arg in args:
print(arg)
foo(1, 2, 3)
上述代码的输出结果为:
1
2
3
- 使用**kwargs
**kwargs是用来传递一个可变长度的关键字参数列表,它会把所有传入的参数全部封装成一个字典,我们可以在函数内部通过访问这个字典来获取指定的参数的值。
def bar(**kwargs):
for key, value in kwargs.items():
print(key + " -> " + str(value))
bar(key1=1, key2='string', key3=[1, 2, 3])
上述代码的输出结果为:
key1 -> 1
key2 -> string
key3 -> [1, 2, 3]
同时在一个函数中使用args和kwargs,就可以处理任意类型的参数组合了。下面是一个使用args和**kwargs来打印基本信息的函数例子:
def print_info(name, age, *args, **kwargs):
print("你好,我叫 " + name + ",我今年 " + str(age) + " 岁。")
print("我的爱好有:")
for arg in args:
print(arg)
print("我正在使用下列软件:")
for key, value in kwargs.items():
print(key + " -> " + value)
print_info("小明", 18, "游泳", "跑步", PyCharm="python开发工具", Adobe="设计软件")
上述代码的输出结果为:
你好,我叫小明,我今年18岁。
我的爱好有:
游泳
跑步
我正在使用下列软件:
PyCharm -> python开发工具
Adobe -> 设计软件
总之,使用args和*kwargs在函数中传递变长参数列表,既方便又灵活,可以根据需要随意定制参数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python函数中*args和**kwargs来传递变长参数的用法 - Python技术站