您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Python如何引用參數傳遞對象,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
大家都知道在python中,一切皆對象,變量也不再具有類型,變量僅僅是對象的一個引用,我們通常用變量來測類型,通常測得就是被這個變量引用得對象的類型。
python采用的是傳遞對象的引用,為了方便說明,我們來看一個例子:
test = [1] def change1(a): a = [2] def change2(a): a.append(3) change1(test) change2(test) print test
我們來看一下最后的輸出:
[1,3]
是不是有人誤以為是[2,3]?那你可得好好看接下來的內容。
傳參傳的是對象的引用!!!!!!
所以在change1(a)函數中,我們知道形參a與test引用了同一塊內存空間,然后a在函數內部被修改了,它執行了另一塊內存空間,也就是存放[2]的地方,但是只是a的指向改變了,test的指向還是存放[1]的內存空間。所以,接下來change2()對這塊內存空間上放的值進行了修改,就得到了我們最后看到的結果。
為了加深理解,我覺得有必要再舉一個類繼承的例子:
class Parent(object): x = 1 ​ class Child1(Parent): pass ​ class Child2(Parent): pass ​ print Parent.x, Child1.x, Child2.x Child1.x = 2 ​ print Parent.x, Child1.x, Child2.x Parent.x = 3 ​ print Parent.x, Child1.x, Child2.x​ 輸出結果為: 1 1 1 1 2 1 3 2 3
在繼承中,所有子類中的x原本都是引用的父類中x對象的存儲空間,但是child1中的x單獨指向了另一塊存儲空間。這樣以來,的到這個結果也就不意外了
看完這篇關于Python如何引用參數傳遞對象的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。