比如這段代碼:
def add(num):
num= num+10
d=2
add(d)
print d
輸出 2
如果我要像C那樣傳遞d的位址,使之輸出12,我應該怎麼做?
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)
代碼如下:
print d
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1917379,如需轉載請自行聯系原作者