【探究】Python可變類型和不可變類型ID的變化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Marvel__Dead/article/details/82938305
# 不可變類型
print("#"*50)
print("不可變類型:")
print("元組測試:")
tuple_01 = (123, 456)
print("tuple_01的數據為:【%s】  ID為:【%s】" % (tuple_01, id(tuple_01)))
tuple_01 = (123, 456)
print("修改後:")
print("tuple_01的數據為:【%s】  ID為:【%s】" % (tuple_01, id(tuple_01)))

print("為空測試:")
tuple_01 = ()
print("tuple_01的數據為:【%s】  ID為:【%s】" % (tuple_01, id(tuple_01)))
tuple_01 = ()
print("修改後:")
print("tuple_01的數據為:【%s】  ID為:【%s】" % (tuple_01, id(tuple_01)))

print("字符串測試:")
str_01 = "啦啦啦"
print("str_01的數據為:【%s】  ID為:【%s】" % (str_01, id(str_01)))
print("修改後:")
str_01 = "啦啦啦"
print("str_01的數據為:【%s】  ID為:【%s】" % (str_01, id(str_01)))

print("為空測試:")
str_01 = ""
print("str_01的數據為:【%s】  ID為:【%s】" % (str_01, id(str_01)))
print("修改後:")
str_01 = ""
print("str_01的數據為:【%s】  ID為:【%s】" % (str_01, id(str_01)))


# 可變類型
print("可變類型:")
print("列表測試:")
list_01 = [123, 456]
print("list_01的數據為:【%s】  ID為:【%s】" % (list_01, id(list_01)))
print("修改後:")
list_01 = [123, 456]
print("list_01的數據為:【%s】  ID為:【%s】" % (list_01, id(list_01)))

print("為空測試:")
list_01 = []
print("list_01的數據為:【%s】  ID為:【%s】" % (list_01, id(list_01)))
print("修改後:")
list_01 = []
print("list_01的數據為:【%s】  ID為:【%s】" % (list_01, id(list_01)))

輸出:
##################################################
不可變類型:
元組測試:
tuple_01的數據為:【(123, 456)】  ID為:【14206416】
修改後:
tuple_01的數據為:【(123, 456)】  ID為:【14206416】
為空測試:
tuple_01的數據為:【()】  ID為:【13238320】
修改後:
tuple_01的數據為:【()】  ID為:【13238320】
字符串測試:
str_01的數據為:【啦啦啦】  ID為:【53188552】
修改後:
str_01的數據為:【啦啦啦】  ID為:【53188552】
為空測試:
str_01的數據為:【】  ID為:【13355424】
修改後:
str_01的數據為:【】  ID為:【13355424】
可變類型:
列表測試:
list_01的數據為:【[123, 456]】  ID為:【13649320】
修改後:
list_01的數據為:【[123, 456]】  ID為:【13650480】
為空測試:
list_01的數據為:【[]】  ID為:【13649320】
修改後:
list_01的數據為:【[]】  ID為:【13650480】

'''
結論:
    不可變類型,只要一定義,後面再次定義相同數據內容,ID不會改變
    可變類型定義一次過後,後面再次定義,ID會改變。

	不可變類型:數字類型(int、float、bool、complex)、字符串、元組
	可變類型:列表、字典、集合
'''

猜你喜欢

转载自blog.csdn.net/Marvel__Dead/article/details/82938305
今日推荐