2024年11月24日 星期日

好站 : *args 和 **kwargs 是什麼?

最近在寫 ESP32 的 MicroPython 函式時要用到 **kwargs 參數, 很久沒用有點模糊, 搜尋谷歌時找到下面這篇寫得言簡意賅的好文章 :


摘要如下 :
  • Python 函式的有預設值參數必須放在無預設值參數的後面
  • *args 與 **kwargs 都是用來簡化函式參數的寫法
  • *args 會將傳入的位置參數的值收集到一個 tuple
  • **kwargs 會將傳入的關鍵字參數的名稱與值收集到一個 dict
  • 參數用了 *arg 就不能再指名; 而用了 **kwargs 就一定要指名
  • 同時使用 *args 與 **kwargs 時, *args 必須放在 **kwargs 前面 (關鍵字參數殿後)
  • 可以用 * 區隔位置參數與關鍵字參數 (雖然沒必要), * 之前為位置參數, 之後為關鍵字參數
作者 Sky 已經將部落格移到 GitHub 去了, 新版網址如下 :


這種好站對偷學武功慣犯的我真是無上好物啊!

沒有留言 :