Python的多類型傳值和冗餘參數

來源:互聯網
上載者:User

標籤:python   具名引數   soft   print   變數   格式   傳遞   pre   預設   

多類型傳值(向函數中傳遞元組和字典)1 向函數中傳遞元組
  def func(x,y):      print x+y
    調用這個函數的時候,我們只需要傳入兩個變數就可以了,但是比如我有一個元組t = (1,2),我想把t的值傳入func,那麼func(t)是不可以的,因為預設情況下它把t當做1個變數了,那麼這種情況下,我們就需要使用*t來表示把t的記憶體位址中的資料傳入,這時就可以了。但要注意,元組t中元素的個數要小於等於函數中定義的形參個數才可以,當函數需要3個形參的時候,此時t中只有兩個元素,那麼傳遞是可以的,但是要手動再指定一個參數才可以正常調用:
def func(x,y,z):    print x+y+zt = (1,2)func(1,*t)
    這樣傳遞才可以,並且*t的這種寫法,只能放在最右邊(具名引數的後面)。也可以直接 func(*(1,2,3))這樣來傳值 2 向函數中傳遞字典如果傳遞的是字典的話,那麼就需要如下格式了
dic = {‘x‘:2,‘y‘:3,‘z‘:10}func(**dic)
這樣才可以。但是字典的key必須和函數的的形參相同 3 冗餘參數處理多餘參數(接收多餘參數)
def func(x,*args,**kwargs):
定義了x具名引數,和兩個多型別參數,作為冗餘參數預設情況下至少傳遞一個具名引數,如果傳的參數多的話,則存到args中(以元組的形式),如果傳遞的是字典,或者變數的預設(例x=1)值等(以字典的形式儲存)
def func(x,*args,**kwargs):  print x  print args  print kwargsfunc(1,2,a=123)1(2,){‘a‘: 123}
 

Python的多類型傳值和冗餘參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.