python的*arg和**kwarg

转载于:http://genggeng.iteye.com/blog/1290438

  1. def test(*arg,**kwargs):  
  2. print arg   
  3. print kwargs  
  4. print "-------------------"   
  5. if __name__=='__main__':  
  6.     test(1,2,3,4,5)  
  7.     test(a=1,b=2,c=3)  
  8.     test(1,2,3,a=1,b=3,c=5)  
  9. output:  
  10. (1, 2, 3, 4, 5)  
  11. {}  
  12. -------------------  
  13. ()  
  14. {'a': 1, 'c': 3, 'b': 2}  
  15. -------------------  
  16. (1, 2, 3)  
  17. {'a': 1, 'c': 5, 'b': 3}  
  18. -------------------  

在python中,这两个是python中的可变参数,*arg表示任意多个无名参数,类型为tuple,**kwargs表示关键字参数,为dict,使用时需将*arg放在**kwargs之前,否则会有“SyntaxError: non-keyword arg after keyword arg”的语法错误。此外arg与kwargs均可以换成其他名字

posted @ 2016-12-02 22:05  dshed  阅读(1139)  评论(0)    收藏  举报