跳到主要内容

解释*args和**kwargs?

参考答案:

*args**kwargs 是 Python 中用于处理函数参数的特殊语法。

  1. *args

    • 允许你传入一个非关键字可变参数列表到函数中。
    • 在函数内部,args 是一个元组(tuple),其中包含了所有传入的位置参数。
    • 使用 *args 可以让函数接受任意数量的位置参数,而不需要提前定义这些参数。示例:
def func(*args):
    for arg in args:
        print(arg)

func(1, 2, 3, 4)  # 输出 1 2 3 4
  1. **kwargs

    • 允许你传入一个非关键字可变参数列表到函数中,但这些参数需要以关键字的形式传入。
    • 在函数内部,kwargs 是一个字典(Dictionary),其中包含了所有传入的关键字参数。
    • 使用 **kwargs 可以让函数接受任意数量的关键字参数,而不需要提前定义这些参数。示例:
def func(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

func(a=1, b=2, c=3)  # 输出 a 1, b 2, c 3

*args**kwargs 常常一起使用,以便在一个函数中同时接受任意数量的位置参数和关键字参数。例如:

def func(*args, **kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(key, value)

func(1, 2, 3, a=4, b=5)  # 输出 1 2 3, a 4, b 5

这种用法在创建可扩展的、灵活的函数时非常有用,因为你可以在不更改函数定义的情况下传递任意数量的参数。