首页 > 代码库 > Python学习笔记5:函数参数详解

Python学习笔记5:函数参数详解

一、函数的定义格式:
def 函数名(参数列表):
    函数体
def fun1(a, b, c):
    return a + b + c

二、位置传递:位置对应
print(fun1(3 ,2 ,1))

输出:

6


三、关键字传递:位置参数要出现在关键字参数之前
print(fun1(3 ,c = 1, b = 2))

输出:

6


四、参数默认值:可以给参数赋予默认值(default)
def fun2(a, b, c = 100):
    return a + b + c
print(fun2(1, 10))
print(fun2(1, 10, 0))
输出:
111
11


五、包裹位置传递:在参数表中,所有的参数被收集,根据位置合并成元组
定义函数时需要在参数前加*
def fun3(*tup):
    print type(tup)
    print tup

fun3(1)
fun3(1, 2)
fun3(1, 2, 3)
输出:
<type ‘tuple‘>
(1,)
<type ‘tuple‘>
(1, 2)
<type ‘tuple‘>
(1, 2, 3)


六、包裹关键字传递:在参数表中,所有的参数被收集,根据关键字合并成字典
定义函数时需要在参数前加**
def fun4(**dic):
    print type(dic)
    print dic
 
fun4(a=1,b=9)
fun4(m=2,n=1,c=11)
输出:
<type ‘dict‘>
{‘a‘: 1, ‘b‘: 9}
<type ‘dict‘>
{‘c‘: 11, ‘m‘: 2, ‘n‘: 1}

七、解包
* 每一个元素对应一个位置参数 
** 每个键值对作为一个关键字
def fun5(a, b, c):
    print(a, b, c)

args = (2, 1, 3)
fun5(*args)

dict = {'b':1,'a':2,'c':3}
fun5(**dict)
输出:
(2, 1, 3)
(2, 1, 3)


八、混合
在定义或者调用参数时,参数的几种传递方式可以混合。但在过程中要小心前后顺序。
基本原则:位置>关键字>包裹位置>包裹关键字,并且根据上面所说的原理细细分辨。

Python学习笔记5:函数参数详解