面试题答案
一键面试-
本质:
*args
:本质是用于将多个非关键字参数收集到一个元组(tuple)中。它允许函数接受任意数量的位置参数(即没有参数名,只有值的参数)。**kwargs
:本质是用于将多个关键字参数收集到一个字典(dictionary)中。它允许函数接受任意数量的关键字参数(即带有参数名和值的参数)。
-
*args
使用场景举例:- 计算多个数的和:
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
result = sum_numbers(1, 2, 3, 4)
print(result) # 输出10
- 打印所有传入的参数:
def print_args(*args):
for arg in args:
print(arg)
print_args('apple', 'banana', 'cherry')
**kwargs
使用场景举例:- 创建一个包含特定信息的字典:
def create_person(**kwargs):
return kwargs
person = create_person(name='Alice', age=30, city='New York')
print(person) # 输出{'name': 'Alice', 'age': 30, 'city': 'New York'}
- 根据传入的关键字参数进行不同操作:
def perform_action(**kwargs):
if 'operation' in kwargs:
if kwargs['operation'] == 'add':
return kwargs['a'] + kwargs['b']
elif kwargs['operation'] =='multiply':
return kwargs['a'] * kwargs['b']
result = perform_action(operation='add', a=3, b=5)
print(result) # 输出8