面试题答案
一键面试- 通过参数解包调用
func
函数:list1 = [1, 2] list2 = [3, 4] def func(a, b, c, d): pass func(*list1, *list2)
*args
和**kwargs
的使用场景及区别:*args
:- 使用场景:当函数需要处理不确定数量的位置参数时使用。例如,一个计算多个数字总和的函数,我们事先不知道会传入多少个数字。
- 示例:
def sum_numbers(*args): total = 0 for num in args: total += num return total result = sum_numbers(1, 2, 3) print(result) # 输出 6
**kwargs
:- 使用场景:当函数需要处理不确定数量的关键字参数时使用。比如,一个函数需要根据不同的配置信息进行不同的操作,配置信息以键值对形式传入。
- 示例:
def describe_person(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") describe_person(name='Alice', age = 30, city='New York')
- 区别:
*args
用于收集位置参数,它将传入的多个位置参数收集到一个元组中。**kwargs
用于收集关键字参数,它将传入的多个关键字参数收集到一个字典中,键为参数名,值为参数值。