Python_*与** 参数

原文地址:http://blog.sina.com.cn/s/blog_7dc317590101cbkr.html

 

问题:

     Python的函数定义中有两种特殊的情况,即出现*,**的形式。

     如:def myfun1(username, *keys) 或 def myfun2(username, **keys)等。

解释:

  *  用来传递任意个无名字参数,这些参数会一个Tuple的形式访问

  **  用来处理传递任意个有名字的参数,这些参数用dict来访问

式例:

 

 1 >>> def fun1(*keys):
 2               print "keys type=%s" % type(keys)
 3               print "keys=%s" % str(keys)
 4               for i in range(0, len(keys)):
 5                   print "keys[" + str(i) + "]=%s" % str(keys[i])
 6   
 7 >>> fun1(2,3,4,5)
 8   
 9 keys type=
10 keys=(2, 3, 4, 5)
11 keys[0]=2
12 keys[1]=3
13 keys[2]=4
14 keys[3]=5        

 

 1 >>> def fun2(**keys):
 2             print "keys type=%s" % type(keys)
 3             print "keys=%s" % str(keys)
 4             print "name=%s" % str(keys['name'])
 5 
 6 
 7 >>> fun2(name="vp", age=19)
 8 
 9 keys type=
10 keys={'age': 19, 'name': 'vp'}
11 name=vp                

 

 

 

posted @ 2016-10-15 16:44  Invertim  阅读(314)  评论(0编辑  收藏  举报