久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python直接引用和間接引用

前面我們講變量的時(shí)候說過,Python在執(zhí)行自定義代碼的時(shí)候,會申請內(nèi)存空間,然后把值存進(jìn)去,再把內(nèi)存地址綁定給變量名。

現(xiàn)在我定義一個(gè)變量名,name=‘于謙’。變量定義完了之后是為了以后能用,而變量的引用方式又有兩種,一種方式就是直接引用,就是直接通過變量名引用對應(yīng)值。另一種就是間接引用,間接引用主要針對是容器類型。

比如我定義一個(gè)列表l,第一個(gè)值我存一個(gè)字符串a(chǎn),第二個(gè)值我存一個(gè)字符串b,第三個(gè)值我直接寫name,沒有加引號。所以它代表的是就是前面我們定義變量名name。

這個(gè)變量名引用到了他的值‘于謙’,也就是說把name放在這里,就等于把‘于謙’的內(nèi)存地址放在這里了,這就叫間接引用。因?yàn)檫@個(gè)l直接指向的是這個(gè)列表的內(nèi)存地址。

然后這個(gè)l[2],指向的就是前面我們定義的這個(gè)name,所以說這個(gè)‘于謙’是用過這個(gè)列表簡介引用到的。我現(xiàn)在直接print這個(gè)l[2],也是可以訪問到‘于謙的’。

那怎么證明這個(gè)l[2]訪問的和前面的‘于謙’是同一個(gè)值呢?前門我們學(xué)過看它們的id是否一樣是不是就可以直接看出來了。我現(xiàn)在直接打印name的id和l[2]的id。

顯示出來的兩個(gè)id都是一樣的,這時(shí)候?qū)W的好的同學(xué)就有人問了,說前面我們學(xué)過,這個(gè)Pycharm會擴(kuò)大小整數(shù)池,這個(gè)‘于謙’Pycharm會給我們做優(yōu)化,所以在Pycharm里面我們看到的id是一樣的。

現(xiàn)在我把這幾行代碼復(fù)制一下,到cmd終端里用Ptython交互式環(huán)境看一下。

你會發(fā)現(xiàn),這兩個(gè)id確實(shí)是一樣的,證明這兩次訪問name和l[2]取的都是同一個(gè)值,只是前面這個(gè)我們稱為直接引用,后面這個(gè)我們稱為簡介引用。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python直接引用和間接引用

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞