python传参时一个星号和两个星号的区别
  DosddciaWHNX 2023年11月02日 24 0


在Python中,一个星号(*)和两个星号(**)用于函数定义中的参数传递,它们有不同的作用和用途。

1、一个星号(*)

一个星号用于传递可变数量的位置参数(Positional Arguments)。当函数定义时,如果在参数列表中的某个参数前面加上一个星号,表示允许该参数接收任意数量的位置参数,并将这些参数作为一个元组(Tuple)传递给函数体中的参数。这可以用于处理不定数量的参数,例如下面的例子。my_function 接收任意数量的位置参数,并使用循环遍历打印这些参数。

def my_function(*args):
    for arg in args:
        print(arg)

my_function(1, 2, 3)  # 输出:1 2 3
my_function('a', 'b', 'c', 'd')  # 输出:a b c d

2、两个星号(**)

两个星号用于传递可变数量的关键字参数(Keyword Arguments)。当函数定义时,如果在参数列表中的某个参数前面加上两个星号,它将允许该参数接收任意数量的关键字参数,并将这些参数作为一个字典(Dictionary)传递给函数体中的参数。这可以用于处理带有不定数量关键字参数的情况,例如:

def my_function(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

my_function(a=1, b=2)  # 输出:a 1  b 2
my_function(name='Alice', age=25, city='New York')  
# 输出:name Alice  age 25  city New York

3、二者的混合使用

一个函数可以同时使用一个星号和两个星号来接收不定数量的位置参数和关键字参数。在下面的例子中,my_function 同时接收位置参数和关键字参数,并使用循环遍历打印它们。

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

my_function(1, 2, 3, name='Alice', age=25)  
# 输出:1 2 3  name Alice  age 25

在Python中,一个星号和两个星号的使用非常灵活,可以用于解包参数、迭代对象和字典等操作。通过这些特殊的语法,我们可以在函数调用时更加灵活地传递参数,提高代码的可读性和可维护性。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
DosddciaWHNX