赞
踩
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 6
更具每个参数的名字写入函数参数
# 关键字传递
def fun2(a,b,c):
return a+b+c
print(fun2(1,c=3,b=2))
输出:
6
给函数的输入参数设定一个默认值,如果该参数最终没有输入,则使用默认参数出入函数.
# 默认值传递
def fun3(a,b=2,c=3):
return a+b+c
print(fun3(a = 1))
输出:
1 6
在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数或者包裹关键字参数来进行参数传递会非常有用。
下面是包裹位置传递的例子:
def fun4(*name):
print(type(name))
print(name)
fun4([1,2,3])
fun4((1,2,3))
fun4(1,2,3)
结果:
<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)
从上面的结果分析:
在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], {'@': 2, '#': 3}) {}
---------**------------
1 2 (3, 4) {'@': 2, '#': 3}
1 2 (3, 4) {'@': 2, '#': 3}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。