色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python動態類型實現原理及過程解析

瀏覽:3日期:2022-07-12 17:24:32

在python中,我們使用變量時,并沒有聲明變量的存在和類型。類型是在運行過程中自動決定的。

a = 3

python將會執行三步去完成上面這個請求。

1.創建一個對象代表3

2.創建一個變量a,如果a未創建。

3.將變量a與對象3相連接。

可以將變量a看作對象3的一個引用。

a = 3b = a

多個變量可以指向同一個對象,在Python中叫共享引用。

Python在每個對象中保持了一個計數器,用于記錄當前指向該對象的引用的數目,一旦計數器被設置為0,該對象的內存空間就會自動回收。

原處修改對象

由于共享引用的存在,有一些對象和操作會在原處修改對象。

Python中對象可分為可變類型對象和不可變類型對象。

可變對象:列表,字典

不可變對象:數字,字符串,元組

如果變量是不可變對象的引用,對變量名的修改不會影響其他變量,而是直接連接到修改的對象。

a = 3b = aprint(a)# 3print(b)# 3

a = 4print(a)# 4print(b)# 3

如果變量是可變對象的引用,對變量名的修改會影響其他變量。

a = [1,2,3]b = aprint(a)# [1, 2, 3]print(b)# [1, 2, 3]

a[0] = 4print(a)# [4, 2, 3]print(b)# [4, 2, 3]

拷貝

所以當你需要創建一個與原列表一樣同時又獨立于原列表的列表時,可以使用拷貝。

下面介紹最常用的兩種。

a = [1,2,3]b = a[:]print(a)# [1, 2, 3]print(b)# [1, 2, 3]

a[0] = 4print(a)# [4, 2, 3]print(b)# [1, 2, 3]

此時b引用的是a所引用的對象的拷貝。a,b指向不同的內存區域。

在字典和集合中,無法使用這種方法。

可以使用標準庫中的copy模塊

import copy

a = [1,2,[3]]b = copy.copy(a)# 淺拷貝c = copy.deepcopy(a)# 深拷貝

a[0] = 0a[-1].append(4)

print(a)# [0, 2, [3, 4]]print(b)# [1, 2, [3, 4]]print(c)# [1, 2, [3]]

淺拷貝中可變對象中嵌套的可變對象的引用還是原來的引用。

深拷貝可以拷貝嵌套的對象結構。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 奇米影视7777久久精品 | 毛片大全在线 | 韩国一级特黄毛片大 | 午夜一级毛片免费视频 | 亚洲综合成人网 | 大香伊蕉国产短视频69 | 日本亚欧乱色视频在线网站 | 亚洲精品国产综合一线久久 | 久久国内精品自在自线软件 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 久久久久久久久久免免费精品 | 欧洲成人在线 | 久久精品成人欧美大片免费 | 欧美成人看片一区二区三区 | 久久男人的天堂 | 久爱免费观看在线网站 | 一级成人a做片免费 | a中文字幕1区 | 国产精品免费一区二区三区四区 | 亚洲国产第一区二区香蕉 | 美国一级大黄香蕉片 | 国产精品亚洲一区二区三区在线观看 | 亚洲视频偷拍自拍 | 精品国产一区二区三区不卡蜜臂 | 国产欧美一区二区三区精品 | 亚洲人成在线播放网站 | 免费大片黄手机在线观看 | 国产免费久久 | 国产欧美日韩高清专区手机版 | 性欧美视频a毛片在线播放 性欧美一级 | 欧美大片毛片大片 | 久久综合精品国产一区二区三区无 | 国产20岁美女一级毛片 | 久久男人天堂 | 久色免费视频 | 精品在线观看视频 | 国产一区二区三区久久小说 | 久久不见久久见免费影院www日本 | 理论在线看 | 久久88香港三级 | 国产高清天干天天视频 |