当前位置:   article > 正文

Python学习:传递参数的多种方式_python参数传递

python参数传递

Python中根据函数的输入参数以及是否有返回值可分为四种函数:

1.无参数无返回值

2.有参数无返回值

3.无参数有返回值

4.有参数无返回值

Python 中参数传递有下列五种方式;

1.位置传递

2.关键字传递

3.默认值传递

4.不定参数传递(包裹传递)

5.解包裹传递

一.位置传递

 # 位置传递实例:
 def fun1(a,b,c):
     return a+b+c
 
 print(fun1(1,2,3))
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

1 6
  • 1

二.关键字传递

更具每个参数的名字写入函数参数

 # 关键字传递
 def fun2(a,b,c):
     return a+b+c
 
 print(fun2(1,c=3,b=2))
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

6
  • 1

三 参数默认值传递

给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.

 # 默认值传递
 def fun3(a,b=2,c=3):
     return a+b+c
 
 print(fun3(a = 1))
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

1 6
  • 1

四 包裹传递

在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。

下面是包裹位置传递的例子:

def fun4(*name):
    print(type(name))
    print(name)

fun4([1,2,3])
fun4((1,2,3))
fun4(1,2,3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:

<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

从上面的结果分析:

在fun4的参数表中,所有的参数被name收集,根据位置合并成一个元祖(tuple),这就是包裹位置传递。

五.解包裹传递

#Python学习交流群:711312441
def func1(a,b=1,*c,**d):
    print(a,b,c,d)


l = [3,4]
dic = {'@':2,'#':3}

func1(1,2,l,dic)
print("---------**------------")
func1(1,2,*l,**dic)
func1(1,2,3,4,**dic)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果:

 1 2 ([3, 4], {'@': 2, '#': 3}) {}
 ---------**------------
 1 2 (3, 4) {'@': 2, '#': 3}
 1 2 (3, 4) {'@': 2, '#': 3}
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/811467
推荐阅读
相关标签
  

闽ICP备14008679号