MST

星途 面试题库

面试题:Python函数中*args和**kwargs的本质及使用场景

请解释Python函数中*args和**kwargs的本质是什么?并分别举例说明它们在不同场景下的使用方式。
26.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 本质

    • *args:本质是用于将多个非关键字参数收集到一个元组(tuple)中。它允许函数接受任意数量的位置参数(即没有参数名,只有值的参数)。
    • **kwargs:本质是用于将多个关键字参数收集到一个字典(dictionary)中。它允许函数接受任意数量的关键字参数(即带有参数名和值的参数)。
  2. *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')
  1. **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