python学习笔记-(13)python中的函数参数传递

在之前的python学习笔记系列博客中,我已经描述过关于python中最简单的函数参数传递,根据参数位置传递。这里就不再赘述了,若想了解位置传递,请链接http://blog.csdn.net/u012990533/article/details/44198209

Python中函数的几种参数传递的方法:

1. 关键字传递

这种传递方式是根据参数的名字进行传递,不需要遵守位置的对应。举例如下:

def sum(a,b)

print a + b

sum(b = 1, a = 2)

关键字传递和位置传递可混用,但位置参数一定要出现在关键字参数之前。

sum(2,b = 1)

2. 参数默认值传递

定义函数的时候,可以给参数默认值,若该参数没有被传递值,就会使用设置的默认值。举例如下:

def sum(a,b = 1)

print a + b

sum(1)

sum(1,2)

说明:第一次调用sum函数时,由于只传递了一个参数,b将使用默认值1。第二次调用sum函数时,传递的与函数定义的参数个数相等,b将使用2

3. 包裹(packing)传递

定义函数的时候,有时候不知道调用函数时传递多少参数,因此,现在要介绍用包裹位置参数和包裹关键字参数的方法来进行参数传递就非常方便了。

包裹位置传递举例如下:

def f(*num):

print type(num)

print num

f(1,2,3)

f(1,3,5,7,)

说明:两次调用f函数,可见,函数定义相同但参数个数不同,细心的读者会注意到,f函数的参数是*num,加上*就代表所有的参数会被num收集,之后根据位置组成一个元组(tuple),num就是元组名,这样的参数形式就称作包裹位置传递参数。

包裹位置传递举例如下:

def f(**num):

print type(num)

print num

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

f(x = 2, y = 2)

说明:此时,num将代表一个词典,会收集所有的关键字,传递给f函数,参数num是包裹关键字传递的词典,参数num必须加上两个**num就是词典名。

非常重要:区分包裹传递是位置传递还是关键字传递的方法就在于定义函数时在相应的元组名或词典名前加***

4. 解包裹(unpacking

Unpacking就是就是在传递tupledictionary的时候,让每一个元素对应一个位置参数或关键字参数。举例如下:

def f(a, b):

print a, b

num = (1,2)

f(*num)

说明:当调用f函数时,会告诉python这里需要把num分解为两个元素12,之后分别传递给abnum前面的*必须有。

同理,对词典的unpacking举例如下:

def f(a, b):

print a, b

num = {“a”:1, “b”:2}

f(<span style="color:#FF0000;">**num</span>)

说明:传递num词典时,词典的每个键值对会作为一个关键字传递给f

5. 重要:Python的函数参数传递的注意事项

在实际的编程中,参数的传递方式可以混合使用,但要遵循如下原则

先位置,后关键字,其次包裹位置,最后包裹关键字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值