python中*符号的用法

Posted by Kody Black on May 5, 2024

在Python的函数中,*这个符号可以有不同的用法。

在函数定义中,*表示接受任意数量的参数。这些参数会被收集成一个元组(tuple)。例如:

def foo(*args):
    print(args)

foo(1, 2, 3)  # 输出: (1, 2, 3)

在函数调用中,*用于将一个可迭代对象(如列表或元组)解包成单独的参数。例如:

def foo(a, b, c):
    print(a, b, c)

my_list = [1, 2, 3]
foo(*my_list)  # 输出: 1 2 3

在函数定义中,**也可以用于指定关键字参数。这样函数可以接受任意数量的关键字参数,并将它们收集成一个字典(dictionary)。例如:

def foo(**kwargs):
    print(kwargs)

foo(a=1, b=2)  # 输出: {'a': 1, 'b': 2}

在函数调用中,**用于将一个字典解包成关键字参数。例如:

def foo(a, b):
    print(a, b)

my_dict = {'a': 1, 'b': 2}
foo(**my_dict)  # 输出: 1 2