python函数的万能传参方式是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Python中,实现函数的万能传参方式主要可以通过两种方法:使用*args
和**kwargs
。
*args
:用于传递任意数量的非关键字(位置)参数。这些参数在函数内部作为元组(tuple)处理。例如:def func_with_args(*args):
for arg in args:
print(arg)
func_with_args(1, 2, 3, "hello") # 输出: 1 2 3 hello
**kwargs
:用于传递任意数量的关键字参数。这些参数在函数内部作为字典(dict)处理,其中关键字为字典的键,对应的值为字典的值。例如:def func_with_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
func_with_kwargs(name="Alice", age=30) # 输出: name: Alice, age: 30
你也可以同时使用*args
和**kwargs
在一个函数定义中,但通常*args
会放在**kwargs
之前,以避免位置参数与关键字参数之间的歧义:
def combined_example(*args, **kwargs):
print("Positional arguments:", args)
print("Keyword arguments:", kwargs)
combined_example(1, 2, key1="value1", key2="value2")
# 输出: Positional arguments: (1, 2), Keyword arguments: {'key1': 'value1', 'key2': 'value2'}
这种万能传参方式使得Python函数更加灵活,能够适应不同数量和类型的输入参数。