回覆列表
  • 1 # 回眸哦了

    ** 在python裡面表示冪運算

    傳遞實參和定義形參(所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數)的時候,你還可以使用兩個特殊的語法:``*`` ** 。

    呼叫函式時使用* **

    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} 了。

    普通的引數定義和傳遞方式和 * 們都可以和平共處,不過顯然 * 必須放在所有位置引數的最後,而 ** 則必須放在所有關鍵字引數的最後,否則就要產生歧義了

  • 中秋節和大豐收的關聯?
  • 兩個月的哈士奇拉稀?