Python函数一个星号*和两个星号**有什么区别

这篇文章主要介绍“Python函数一个星号*和两个星号**有什么区别”,在日常操作中,相信很多人在Python函数一个星号*和两个星号**有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python函数一个星号*和两个星号**有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  在Python的函数中经常能看到输入的参数前面有一个或者两个星号,例如:

  deffoo(param1,*param2):

  defbar(param1,**param2):

  这两种用法其实都是用来将任意个数的参数导入到Python函数中。

单星号(*):*agrs

  将所有参数以元组(tuple)的形式导入:

  实例

  deffoo(param1,*param2):

  print(param1)

  print(param2)

  foo(1,2,3,4,5)

  以上代码输出结果为:

  1

  (2,3,4,5)

双星号(**):**kwargs

  双星号(**)将参数以字典的形式导入:

  实例

  defbar(param1,**param2):

  print(param1)

  print(param2)

  bar(1,a=2,b=3)

  以上代码输出结果为:

  1

  {'a':2,'b':3}

此外,单星号的另一个用法是解压参数列表:

  实例

  deffoo(runoob_1,runoob_2):

  print(runoob_1,runoob_2)

  l=[1,2]

  foo(*l)

  以上代码输出结果为:

  12

当然这两个用法可以同时出现在一个函数中:

  实例

  deffoo(a,b=10,*args,**kwargs):

  print(a)

  print(b)

  print(args)

  print(kwargs)

  foo(1,2,3,4,e=5,f=6,g=7)

  以上代码输出结果为:

  1

  2

  (3,4)

  {'e':5,'f':6,'g':7}

到此,关于“Python函数一个星号*和两个星号**有什么区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!