python函数参数*args和**args
生活随笔
收集整理的這篇文章主要介紹了
python函数参数*args和**args
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工作原因,需要了解Python,朋友推薦了Python學習手冊4
看了兩天,實在忍不住吐槽一下,翻譯水平的實在讓人失望,后悔買了(而且如果你像作者一樣,會點java,剛接觸這本書,估計要抓狂了 ? --!)
? ? 函數參數的*args,看一遍就能明白
1 def test(name,*a): 2 print(name) 3 print(a)? ? test('aaaa',1,2,3,4,5)
? ? 執行結果應該如下
? ? 'aaaa'
? ? (1,2,3,4,5)
? ? 其實,這個就像java里面的可變參數... ? 不知道形容的對不,就這么理解吧。。。
? ? 再看下面這個:
>>def test(name,**args): .... print(name) .... print(args)>>test('aaa',a=1,b=2,c=3)>>'aaa'>>{'a':1,'b':2,'c':3}? ? 呃,原來是字典,但為什么書里面翻譯我看不懂. --!
?
? ? 好吧,有些函數調用的時候有test(*(1,2,3,4))
? ? 如下:
>>def test(a,b,c,d,e): .... print(a,b,c,d,e)>>t = (1,2,3,4)>>test('aa',*t)>>('aa',1,2,3,4)? ? 明白了吧,實際上就是把*后面的參數解包
? ? 你可以試下test('aa','bb',*t) ? ?? ?test(*t)
? ??
? ? 更變態的是,居然還有**的,難道把字典解包,那傳入的是字典的key還是value?
? ??
>>def test(a,b,c,d): .... print(a,b,c,d)>>a = {'a':1,'b':2,'c':3,'d':4}>>test(**a)>>(1,2,3,4)
? ? 呃,原來傳入的是value。。那如果字典a的鍵值對數量不夠或者過多,會怎么樣。??梢栽囋?/p>
? ? 我覺得,如果你試了上面的,這個就應該猜出來了
?
轉載于:https://www.cnblogs.com/shiluocn/p/4862414.html
總結
以上是生活随笔為你收集整理的python函数参数*args和**args的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SimpleTemplate模板引擎开发
- 下一篇: View 事件传递