免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1948 | 回复: 0
打印 上一主题 下一主题

Python函数中的变长参数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-04 16:28 |只看该作者 |倒序浏览
apply已过时!
someFun(*t):
def printPara(*tup):
    print tup
printPara(1, 2, 3)(1, 2, 3)
printPara(range(1, 4))([1, 2, 3],)
printPara(range(1, 4), range(1, 4))([1, 2, 3], [1, 2, 3])
tup = [1, 2, 3]
printPara(*tup)
(1, 2, 3)

除非通过“*”指明一个参数是一个tuple,否则视该参数是某个tuple的一个元素。


def printPara(a, b, c):
    print a, b, c
tup = [1, 2, "abc"]
printPara(*tup)1 2 abc

函数声明中虽然没有指定参数是一个tuple,但是仍然可以传递一个tuple参数调用该函数,该参数要以“*”标明是一个tuple,并且该tuple中包含元素个数一定要与函数声明中的参数个数一致。

someFun(**d):
def printDict(**d):
    print d
d = {"first": 1, "second":2}
printDict(**d){'second': 2, 'first': 1}
printDict(first=1, second=2)
{'second': 2, 'first': 1}

dict中的key类型只能为strings,以上例中的第二种形式调用时,key虽然只能为strings,但是还不能以加引号的形式调用(联想一下命名参数函数调用!)。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/62895/showart_1073240.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP