国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python參數(shù)傳遞對象的引用原理解析

瀏覽:112日期:2022-07-24 18:33:17

大家都知道在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]?那你可得好好看接下來的內(nèi)容。

傳參傳的是對象的引用!!!!!!

所以在change1(a)函數(shù)中,我們知道形參a與test引用了同一塊內(nèi)存空間,然后a在函數(shù)內(nèi)部被修改了,它執(zhí)行了另一塊內(nèi)存空間,也就是存放[2]的地方,但是只是a的指向改變了,test的指向還是存放[1]的內(nèi)存空間。所以,接下來change2()對這塊內(nèi)存空間上放的值進(jìn)行了修改,就得到了我們最后看到的結(jié)果。

為了加深理解,我覺得有必要再舉一個類繼承的例子:

class Parent(object):x = 1​ class Child1(Parent):pass​ class Child2(Parent):pass​ print Parent.x, Child1.x, Child2.xChild1.x = 2​ print Parent.x, Child1.x, Child2.xParent.x = 3​ print Parent.x, Child1.x, Child2.x​輸出結(jié)果為:1 1 11 2 13 2 3

在繼承中,所有子類中的x原本都是引用的父類中x對象的存儲空間,但是child1中的x單獨指向了另一塊存儲空間。這樣以來,的到這個結(jié)果也就不意外了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 丰顺县| 乌苏市| 清流县| 陆丰市| 葵青区| 青神县| 海林市| 南雄市| 沈阳市| 平和县| 比如县| 承德县| 晋州市| 康保县| 万山特区| 翁牛特旗| 灵丘县| 谢通门县| 定边县| 泗阳县| 前郭尔| 德令哈市| 武冈市| 甘孜| 上杭县| 阿合奇县| 新龙县| 和林格尔县| 新和县| 武城县| 长乐市| 柳州市| 龙州县| 陕西省| 天台县| 客服| 兰州市| 延寿县| 中西区| 满城县| 金川县|