回覆列表
  • 1 # 指尖時

    首先你要明白,Python的函式傳遞方式是賦值,而賦值是透過建立變數與物件的關聯實現的。

    對於你的程式碼:

    執行 d = 2時,你在__main__裡建立了d,並讓它指向2這個整型物件。

    執行函式add(d)過程中:

    d被傳遞給add()函式後,在函式內部,num也指向了__main__中的2

    但執行num = num + 10之後,新建了物件12,並讓num指向了這個新物件——12。

    如果你明白函式中的區域性變數與__main__中變數的區別,那麼很顯然,在__main__中,d仍在指著2這個物件,它沒有改變。因此,你列印d時得到了2。

    如果你想讓輸出為12,最簡潔的辦法是:

    在函式add()裡增加return num

    呼叫函式時使用d = add(d)

    程式碼如下:

    def add(num):

    num += 10

    return num

    d = 2

    d = add(d)

    print d

  • 中秋節和大豐收的關聯?
  • 對於愛讀書的孩子,學校能否專門設立資金給予獎勵呢?