Python函數中傳遞任意數量的實參(77)

函數就好比是你厭倦了重復差不多內容的功能,這些功能都會耗費很多同樣的代碼。

為了簡潔起見,可以把這些內容都封裝為函數。這樣,只要一行就可以實現原來很多行代碼的功能。這些函數還可以根據傳遞的不同命令內容來決定具體函數的功能。這些命令內容叫參數。

有時候,你預先不知道函數需要接受多少個實參,好在Python允許函數從調用語句中收集任意數量的實參。

python大大的圖

我的圖

這是一個制作比薩的函數,它需要接受很多配料,但你無法預先確定顧客要多少種配料。形參名*toppings中的星號讓Python創建一個名為toppings的空元組,并將收到的所有值都封裝在這個元組中。

Python能夠處理使用一個值調用函數的情形,也能處理使用三個值來調用函數的情形。它以類似的方式處理不同的調用,注意,Python將實參封裝到一個元組中,即便函數只收到一個值也是如此。

第八行直接規定要取出元組中的第一個和第二個元素,但是很明顯在pepperoni這個元組中只有一個元素,因此會報錯說元組索引超出范圍。根本就沒有toppings[1]這個元素嘛!

但是如果元組中元素確保大于等于2的時候就不會有這樣的問題


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文為《爬著學Python》系列第十篇文章。 在實際操作中,可能函數是我們幾乎唯一的實現操作的方式,這是因為函數能...
    SyPy閱讀 5,503評論 0 8
  • 第1章 準備工作第2章 Python語法基礎,IPython和Jupyter第3章 Python的數據結構、函數和...
    SeanCheney閱讀 120,686評論 30 305
  • 不可抗力具有獨特的魔力,它的力量摧枯拉朽。我小時候總做的一個夢,它一直都在預警著一件可怕的事情。這很奇妙,就好像到...
    DEBRAH閱讀 284評論 0 0
  • 早就想寫寫咖啡了,總覺得這個東西太神奇,為什么味道如此清苦,卻有這么多人鐘愛? 第一次聽到咖啡這個詞,是識字以后,...
    慕卿苑閱讀 498評論 8 0
  • 早晨上班路上,看到一行婚車,頭車是一輛白色寶馬740,寓意聽說叫白頭到老,后面清一色奧迪A6,我們這叫場面。不是我...
    小泥壺閱讀 304評論 5 2