Python 變量

Python中一切皆對象,這節(jié)主要內(nèi)容如下:

1. 變量命名規(guī)則
2. 變量賦值
4. 變量與內(nèi)存

1. 變量名

Python中變量名遵循下面規(guī)則:
1)字符或者下劃線開頭;
2)由字符和數(shù)字下劃線組成;
3)變量名對大小寫敏感;
4)不能和關(guān)鍵字重名(關(guān)鍵字:例如 if,while等);

正確變量名:x, y, _tmp1, tmp, check_flag;
錯(cuò)誤變量名:1x,if, @s,
2. 變量賦值

Python是動(dòng)態(tài)解釋性語言,賦值時(shí)候不需要指定變量類型。

  • 變量賦值實(shí)質(zhì):
    1)創(chuàng)建對象;
    2)將變量名和對象進(jìn)行綁定;
x = 10, 
如果10這個(gè)對象不存在,
python解釋器創(chuàng)建對象10,
然后將x指向這個(gè)對象;
對象決定了類型,變量沒有類型,只是一個(gè)指針;
  • 引用:變量賦值就是一個(gè)引用過程,賦值過程是變量名和對象進(jìn)行綁定,變量名修改時(shí)進(jìn)行解綁定;
    好處:當(dāng)多個(gè)變量同時(shí)指向一個(gè)對象時(shí),減小內(nèi)存開銷;
    壞處:增加了綁定和解綁定過程,消耗極少時(shí)間;

  • 變量賦值類型:
    1)直接賦值:
    x = 10
    2)增量賦值:
    x += 20
    3)多重賦值:
    x = y = z = 10
    4)多元賦值:
    x, y = 10, '10' 等于 x = 10, y = '10'

3. 變量與內(nèi)存:
  • 變量和內(nèi)存關(guān)系:
    1)定義兩個(gè)變量x, y,賦予相同的整數(shù)值10,
    2)然后修改y的值,使用id方法觀察變量指向地址變化;
>>> x = 10
>>> id(x)      #id方法:得到對象的地址
1351918976
>>> y = 10
>>> id(y)
1351918976
>>> id(10)
1351918976
>>> y=20
>>> id(y)
1351919296
>>> id(x)
1351918976
>>> 

從上面的例子中我們發(fā)現(xiàn):
1:x,y同時(shí)指向變量10且內(nèi)存地址是相同的;
2:當(dāng)我們修改y值后,y指向地址發(fā)生變化;但是x沒有變化;
需要注意,這種賦值方式只適用于占用內(nèi)存較小的變量、字符串等,當(dāng)我們是使用浮點(diǎn)做下實(shí)驗(yàn)就會(huì)得到不同結(jié)果,這與Python內(nèi)存管理機(jī)制有關(guān)系:

>>> m = 3.14
>>> n = 3.14
>>> id(m)    # m和n的值形同,但是地址不同
2013662155904
>>> id(n)
2013662157488
>>> 
  • 內(nèi)存回收機(jī)制:
    問:如果我們不斷賦值,變量會(huì)不會(huì)太多導(dǎo)致內(nèi)存不夠?
    回答:當(dāng)我們對變量進(jìn)行賦值時(shí),賦值對象的引用計(jì)數(shù)會(huì)加1,當(dāng)我們修改變量或者變量作用域小時(shí)時(shí)候,引用計(jì)數(shù)減1,當(dāng)對象的引用計(jì)數(shù)為0時(shí),python解釋器會(huì)釋放這個(gè)對象,對內(nèi)存進(jìn)行回收。
總結(jié):
掌握知識點(diǎn):

1:變量命名規(guī)則
2:變量的賦值形式

了解知識點(diǎn):

Python內(nèi)存管理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容