python函数处理_谈python函数的参数处理

以下几种函数定义def funcion(a,b):    print a,bfunction(1,2)def function1(*a):    print a       <=打印元组function1(1,2,3)def function2(**a):    print a       <=打印字典function2(name='zzj',age=30)def function3(*a,**b):    print a,b     <=打印元组+字典function3(1,2,3,name='zzj',age=30)调用,需要人为的构造实参.如果我们有现成的元组和字典,想作为实参应该怎么办?如我们经过一系列的动作得知了一个元组aTuple,想将其作为实参,难道function1(aTuple)?返回是一个((aTuple),)将其aTuple作为一个元组元素,不是我们想要的,我们想要的是将aTuple元组元素作为*a的元素,所以,我们这里需要调用apply函数来处理这样的事情apply(function1,aTuple)code>>> aTuple=(1,2,3,4)>>> function1(aTuple)((1, 2, 3),)>>> apply(function1,aTuple)(1, 2, 3, 4)同样的道理我们的实参是一个字典aDict呢?如果以function2(aDict),呵呵,不能以aDict作为实参,那么可以用apply来实现吗?可以,请看如下code演示,所以后期如果你的参数是以元组或者字典组成或者参数,元组,字典三者混合,那么不需要考略如何将其转换成原始调用模式,可以考略下使用apply功能来完成.code>>> aDict{'age': 30, 'name': 'zzj'}>>> function2(name='zzj',age=30){'age': 30, 'name': 'zzj'}>>> function2(aDict)            Traceback (most recent call last):  File "", line 1, in TypeError: function2() takes exactly 0 arguments (1 given)>>> apply(function2,(),aDict){'age': 30, 'name': 'zzj'}最后展示下用apply函数来处理参数,元组,字典三者混合的案例code>>> def function4(a,b,c,*d,**e):...     print a,b,c,d,e... >>> arg1=1>>> arg2=2>>> arg3=3>>> aTuple=(4,5,6)>>> aDict={'name':'zzj','age':30}>>> apply(function4,(arg1,arg2,arg3,aTuple),aDict)1 2 3 ((4, 5, 6),) {'age': 30, 'name': 'zzj'}>>> 注意,实参与形参的顺序,一定要对应上,否则就不是你想要的值了.通过以上实例相信大家对python中函数定义的参数有一定的玩法了(包括可变参数的概念*a,**b),并且提供apply函数来实现更加灵活的调用.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值