*args和**kwargs在python中的作用


我發現PYTHON新手在理解*args和**kwargs這兩個魔法變量的時候有些困難。他們到底是什么呢?

首先,我先告訴大家一件事情,完整地寫*args和**kwargs是不必要的,我們可以只寫*和**。你也可以寫*var和**vars。寫*args和**kwargs只是一個大家都遵守的習慣。那現在讓我們從*args講起。

*args的使用

*args和**kwargs允許你在給函數傳不定數量的參數。“不定量”意味着你在定義函數的時候不知道調用者會傳遞幾個參數進來。*args能夠接收不定量的非關鍵字參數。下面這個例子能夠說明這一點:

image

這個例子產生的結果為:

image

這樣應該解釋得比較清楚了,下面,我們來看**kwargs

**kwargs允許你傳遞不定量個關鍵字參數。如果你需要在函數中定義不定量個命名參數,那么你就要**kwargs了。

下面這個例子來演示這種用法

ad3c15f_看圖王.web

這個例子中我們處理了一些關鍵字參數。這是**kwargs的基本用法,可以看出**kwargs很有用。接下來讓我們說明使用*args和**kwargs來在調用函數時,給函數傳遞“一個列表的參數”,或者“一個字典的參數”。

使用*args和**kwargs來調用一個函數

下面我們介紹如何使用*args和**kwargs來調用一個函數,假設你有這樣一個函數。

694a464_看圖王.web

下面我們使用*args和**kwargs來給這個函數傳遞參數,我們可以這樣做:

b591ec5_看圖王.web

*args和**kwargs以及普通參數的使用順序

如果你想同時使用這三種參數,那么它們之間的順序是

c1b6f0b_看圖王.web


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM