Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141042
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-07 10:53
文章分类

全部博文(30)

文章存档

2009年(1)

2008年(29)

我的朋友

分类: Python/Ruby

2008-07-04 16:28:44

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,但是还不能以加引号的形式调用(联想一下命名参数函数调用!)。
阅读(1069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~