範例與翻譯理解自連結與連結
*args跟 **kwargs是類似的東西,是可有可無的參數。 一顆星的*args是tuple,可以接受很多的值。兩顆星的**kwargs一樣是可以接受很多值,但是是接受dictionary。
###一顆星用法
範例
1 2 3 4 5 6
| def test_var_args(farg, *args): print "formal arg:", farg for arg in args: print "another arg:", arg test_var_args(1, "two", 3)
|
结果
1 2 3
| formal arg: 1 another arg: two another arg: 3
|
###兩顆星用法
範例
1 2 3 4 5 6
| def test_var_kwargs(farg, **kwargs): print "formal arg:", farg for key in kwargs: print "another keyword arg: %s: %s" % (key, kwargs[key]) test_var_kwargs(farg=1, myarg2="two", myarg3=3)
|
结果
1 2 3
| formal arg: 1 another keyword arg: myarg2: two another keyword arg: myarg3: 3
|
順序問題
如果function定義時如上圖先放了tuple才是dictionary,呼叫時參數先放dictionary再放tuple會跳error。
最後更新時間: