2014年9月29日 星期一

Python *args and **kwargs

Excess Arguments

Python 提供了兩個變數分別是 args 和 kwargs很多時候,因為你不可能每次都會知道Function到底會提供多少的arguments(引數)所以Python提供兩個特別的方法,去允許Function接收超過的引數(Excess Arguments)也就是 args 和 kwargs


*args 

前面有一個星號 *args 可以接收任意數字(number)

args 是tuple的型態,如果你沒有傳任何東西,他將會是empty tuple


def test_args(*args):
    print args
 
>>> test_args(1,2,3,4,5)
(1,2,3,4,5)
**kwargs 

前面會有兩個星號 **kwargs 可以接收任意有Keyworded的變數

kwargs 是dictionary的型態,如果你沒有傳任何東西,他也將會是empty dictionary

def test_kwargs(**kwargs):
    print kwargs
    if kwargs is not None:
        for key, value in kwargs.iteritems():
            print "%s == %s" %(key,value)
 
>>> test_kwargs(name="small")
{name:"small"}
name == small

沒有留言:

張貼留言