学习Python (三)

函数参数传值

参数的几种传递方式可以混合定义和混合调用。但在过程中要小心前后顺序。基本原则是,先位置,再关键字,再包裹位置,再包裹关键字

包裹和解包裹并不是相反操作,而是两个相对独立的过程

a.按位置一一传递 f(1,2,3) //a,b,c

b. 关键字(keyword)参数传递

有时候,我们发现,在写程序时用位置传递会感觉比较死板。关键字传递就是根据每个参数的名字传递值,而不用遵守固定的位置。依然沿用上面f的定义,更改调用方式:

f(c=3,b=2,a=1)

关键字传递可以和位置传递混用,但位置传递的参数必须在关键字传递的参数之前。

f(1,c=3,b=2)

 c. 参数默认值(default)

定义函数的时候,使用形如a=19的方式,可以给参数赋予默认值。如果该参数最终没有被传递值,将使用该默认值。

def f(a,b,c=10):
    print a,b,c

f(3,2)
f(3,2,1)

 
d.包裹位置传递与包裹关键字传递
区别在于 一个是元组,一个是字典;均可用于不确定参数个数以及不确定key-value
def func(*name):
...     print type(name)
...     print name
...
>>> func(1,4,6)
<type 'tuple'>
(1, 4, 6)
>>> func(1,4,6,5,6)
<type 'tuple'>
(1, 4, 6, 5, 6)
>>> def func(**dict):
...     print type(dict)
...     print dict
...
>>>
>>> func(a=1, b=9)
<type 'dict'>
{'a': 1, 'b': 9}
>>>
e.解包裹 
def func(a,b,c):
...     print a, b, c
...
>>> args = (1,3,4)
>>> func(*args)
1 3 4
>>> dict = {'a':1, 'b':2, 'c':3}
>>> func(**dict)
1 2 3
>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值