變量不是盒子! 請(qǐng)用標(biāo)簽?zāi)P屠斫庾兞?/h1>
為什么許多人學(xué)編程入遲遲不了門?變量的理解就是重要一關(guān),有許多無(wú)良書(shū)籍和教程把變量比喻成盒子,盒子模型好理解但是有很多解釋不通的地方,導(dǎo)致了學(xué)習(xí)者越學(xué)越迷糊。

請(qǐng)看以下的python代碼:(中文python, 本文代碼可以直接在 zwpython.cn網(wǎng)頁(yè)內(nèi)運(yùn)行)
a = 1
b = a
打印(a) # 結(jié)果是1,打印對(duì)應(yīng)原版python的print函數(shù)
打印(b) # 結(jié)果是1 可能理解成a盒子的數(shù)據(jù)放到b盒子里
打印(a) # 結(jié)果還是1, 如果理解成a盒子的數(shù)據(jù)放到b盒子里,為什么a盒子還有?
在python中可以用函數(shù)id查看變量的內(nèi)存地址:

a和b的內(nèi)存地址竟然完全相同?盒子模型怎么解釋。
如果a和b代表兩個(gè)列表,給列表添加元素后,用戶會(huì)更迷惑:
a=[1,2,3,4]
b=a
b.add(5)
print(b) # [1,2,3,4,5]
print(a) # [1,2,3,4,5] a竟然也變了?
所以,如果你看到的書(shū)籍或教程再把變量比喻成盒子,直接扔掉,錯(cuò)誤的比喻不如不比喻!
那么怎樣直觀的理解變量,變量就像標(biāo)簽,如下圖:

具體請(qǐng)看我主頁(yè)的視頻
《中文python_用標(biāo)簽?zāi)P屠斫庾兞俊?/p>
標(biāo)簽: