Python代碼執(zhí)行可視化
一拼岳、可變類型與不可變類型
不可變類型:內(nèi)存中的數(shù)據(jù)不允許被修改
數(shù)字類型:int, bool, float, complex, long(2.x)
字符串:str
元組:tuple
對(duì)于不可變類型的變量莹痢,如果要更改變量,則會(huì)創(chuàng)建一個(gè)新值,把變量綁定到新值上豆赏,而舊值如果沒有被引用就等待垃圾回收播揪。
可變類型:內(nèi)存中的數(shù)據(jù)可以被修改
列表:list
字典:dict
自定義類型(class定義的類型)
示例:
a = 10
b = a # 值傳遞(創(chuàng)建了一個(gè)變量b,綁定到了常量10上)
b = 100 # 將變量b重新綁定到了常量100上(因?yàn)槌A?0不可以被修改)
print(a)
b = a
b = 100
a = [1,2,3,4,5,6,7,8,9,10]
b = a # 地址傳遞(創(chuàng)建了一個(gè)變量b顾瞪,綁定到了列表[1,2,3,4,5,6,7,8,9,10]上)
b[1] = 10 # 將變量b綁定的列表第二個(gè)元素值修改為10(因?yàn)榱斜砜梢员恍薷模?print(a)
b = a
b[1] = 10
運(yùn)行結(jié)果
二舔庶、== 和 is
== 運(yùn)算符:比較兩個(gè)對(duì)象的值(對(duì)象中保存的數(shù)據(jù))
is 運(yùn)算符:比較對(duì)象的引用(標(biāo)識(shí))
通常,我們關(guān)注的是值陈醒,而不是標(biāo)識(shí)惕橙,因此 Python 代碼中 == 出現(xiàn)的頻率比 is 高。
示例:
a = [1,2,3,4,5,6,7,8,9,10]
b = [1,2,3,4,5,6,7,8,9,10]
print(a == b)
print(a is b)
運(yùn)行結(jié)果