Python传递参数的多种方式

it2022-05-09  36

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

1.无参数无返回值

2.有参数无返回值

3.无参数有返回值

4.有参数无返回值

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

1.位置传递 

2.关键字传递

3.默认值传递

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

5.解包裹传递

一 位置传递

  没什么好过多讲解.

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

输出:

 

1 6

二 关键字传递

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

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

输出:

6

 

三 参数默认值传递

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

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

输出:

1 6

 

四 包裹传递

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

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

1 def fun4(*name): 2 print(type(name)) 3 print(name) 4 5 fun4([1,2,3]) 6 fun4((1,2,3)) 7 fun4(1,2,3)

结果:

<class 'tuple'> ([1, 2, 3],) <class 'tuple'> ((1, 2, 3),) <class 'tuple'> (1, 2, 3)

从上面的结果分析:

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

 五 解包裹传递

1 def func1(a,b=1,*c,**d): 2 print(a,b,c,d) 3 4 5 l = [3,4] 6 dic = {'@':2,'#':3} 7 8 func1(1,2,l,dic) 9 print("---------**------------") 10 func1(1,2,*l,**dic) 11 func1(1,2,3,4,**dic) View Code

运行结果:

1 1 2 ([3, 4], {'@': 2, '#': 3}) {} 2 ---------**------------ 3 1 2 (3, 4) {'@': 2, '#': 3} 4 1 2 (3, 4) {'@': 2, '#': 3} View Code

 

转载于:https://www.cnblogs.com/taoke2016/p/8453258.html


最新回复(0)