?? python 可變與不可變類型

可變類型與不可變類型的本質(zhì)區(qū)別
當(dāng)變量指向的值發(fā)生變化時(shí),如果變量的地址發(fā)生變化,則該變量是不可變類型; 如果變量的地址沒有發(fā)生變化,則該變量是可變類型
python中內(nèi)置類型的可變性
數(shù)值: 不可變
字符串: 不可變
元組: 不可變
列表: 可變
字典: 可變
set: 可變

number = 3
id_1 = id(number)
number = 4
id_2 = id(number)
# type(number)=<class 'int'>,id_1 == id_2:False
print(f'type(number)={type(number)},id_1 == id_2:{id_1 == id_2}')  # 不可變類型

string = 'str'
id_1 = id(string)
string = 'str1'
id_2 = id(string)
# type(string)=<class 'str'>,id_1 == id_2:False
print(f'type(string)={type(string)},id_1 == id_2:{id_1 == id_2}')  # 不可變類型
# --------------------
# 以下為可變類型
# -------------------
tup = (1, 2, [3])
id_1 = id(tup)
tup[2].append(4)
id_2 = id(tup)
# type(tup)=<class 'tuple'>,id_1 == id_2:True
print(f'type(tup)={type(tup)},id_1 == id_2:{id_1 == id_2}')  # 可變類型
li = [1, 2, 3]
id_1 = id(li)
li.append(4)
id_2 = id(li)
# type(li)=<class 'list'>,id_1 == id_2:True
print(f'type(li)={type(li)},id_1 == id_2:{id_1 == id_2}')  # 可變類型
dic = {'name': 'zs'}
id_1 = id(dic)
dic['age'] = 18
id_2 = id(dic)
# type(dict)=<class 'list'>,id_1 == id_2:True
print(f'type(dict)={type(li)},id_1 == id_2:{id_1 == id_2}')  # 可變類型
s = {1, 2, 3}
id_1 = id(s)
s.add(5)
id_2 = id(s)
# type(s)=<class 'set'>,id_1 == id_2:True
print(f'type(s)={type(s)},id_1 == id_2:{id_1 == id_2}')  # 可變類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

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

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