Python函數中的*與**


Python函數傳參中的*與**

在為函數調用時傳遞參數和函數定義時使用參數的時候,時常會看到有和 *和**,下面分別講解其作用。
  • 函數調用時使用*和 **
    假設有函數
def test(a, b, c)

test(*args) :* 的作用其實就是把序列args中的每個元素,當作位置參數傳進去。比如上面這個代碼,如果 args 等於 (1,2,3) ,那么這個代碼就等價於 test(1, 2, 3)

test(**kwargs)** 的作用則是把字典 kwargs 變成關鍵字參數傳遞。比如上面這個代碼,如果 kwargs 等於 {‘a’:1,’b’:2,’c’:3} ,那這個代碼就等價於 test(a=1,b=2,c=3)

  • 函數定義時使用*和**
def test(*args): 

  定義函數時 * 的含義又要有所不同,在這里 *args 表示把傳進來的位置參數都裝在元組 args 里面。比如說上面這個函數,傳參調用test(1, 2, 3)的話, args 的值就是 (1, 2, 3) 。:

def test(**kwargs): 

  類似的, ** 就是針對關鍵字參數和字典的了。 傳參調用 test(a=1,b=2,c=3)的話, kwargs 的值就是 {'a':1,'b':2,'c':3} 了。

轉載於


免責聲明!

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



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