當你使用*args
時,所有的位置參數都被壓縮或壓縮到一個元組中。
我使用**kwargs
,所有關鍵字參數都打包成一個字典。
(其實名字args
或kwargs
是不相關的,有哪些事項星號):-)
例如:
>>> def hello(* args):
... print "Type of args (gonna be tuple): %s, args: %s" % (type(args), args)
...
>>> hello("foo", "bar", "baz")
Type of args (gonna be tuple): <type 'tuple'>, args: ('foo', 'bar', 'baz')
現在,這不會發生,如果你沒」 t「打包」這些參數。
>>> def hello(arg1, arg2, arg3):
... print "Type of arg1: %s, arg1: %s" % (type(arg1), arg1)
... print "Type of arg2: %s, arg2: %s" % (type(arg2), arg2)
... print "Type of arg3: %s, arg3: %s" % (type(arg3), arg3)
...
>>> hello("foo", "bar", "baz")
Type of arg1: <type 'str'>, arg1: foo
Type of arg2: <type 'str'>, arg2: bar
Type of arg3: <type 'str'>, arg3: baz
您也可以參考這個問題Python method/function arguments starting with asterisk and dual asterisk
那麼,它包含一個元素的元組:一個字典 – BorrajaX 2012-07-31 20:14:50