亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2020年05月22日 09:44:50   作者:瘋了的小蝸  
這篇文章主要介紹了Python參數(shù)傳遞對(duì)象的引用原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

大家都知道在python中,一切皆對(duì)象,變量也不再具有類型,變量?jī)H僅是對(duì)象的一個(gè)引用,我們通常用變量來(lái)測(cè)類型,通常測(cè)得就是被這個(gè)變量引用得對(duì)象的類型。

python采用的是傳遞對(duì)象的引用,為了方便說(shuō)明,我們來(lái)看一個(gè)例子:

test = [1]
def change1(a):
  a = [2]

def change2(a):
  a.append(3)

change1(test)
change2(test)
print test

我們來(lái)看一下最后的輸出:

[1,3]

是不是有人誤以為是[2,3]?那你可得好好看接下來(lái)的內(nèi)容。

傳參傳的是對(duì)象的引用?。。。。。?

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

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

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​
輸出結(jié)果為:
1 1 1
1 2 1
3 2 3

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論