您的位置:首页 > 编程语言 > Python开发

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

2014-10-09 09:27 1211 查看
一、函数的定义格式:

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)

八、混合

在定义或者调用参数时,参数的几种传递方式可以混合。但在过程中要小心前后顺序。

基本原则:位置>关键字>包裹位置>包裹关键字,并且根据上面所说的原理细细分辨。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: