国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Python動態(tài)類型實現(xiàn)原理及過程解析

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

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

a = 3

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

1.創(chuàng)建一個對象代表3

2.創(chuàng)建一個變量a,如果a未創(chuàng)建。

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

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

a = 3b = a

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

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

原處修改對象

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

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

可變對象:列表,字典

不可變對象:數(shù)字,字符串,元組

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

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]

拷貝

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

下面介紹最常用的兩種。

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指向不同的內(nèi)存區(qū)域。

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

可以使用標準庫中的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]]

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

深拷貝可以拷貝嵌套的對象結(jié)構(gòu)。

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

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 九九九在线视频 | 免费a级在线观看播放 | 99热r| 女人十八一级毛片 | 欧美激情精品久久久久久久久久 | 免费看一级做a爰片久久 | 欧美另类精品 | 亚洲国语在线视频手机在线 | 中文字幕色站 | 欧美激情伦妇在线观看 | 国产精品日本一区二区不卡视频 | 韩国在线精品福利视频在线观看 | 成年女人毛片免费观看97 | 亚洲欧洲日产v特级毛片 | 欧美午夜三级我不卡在线观看 | 欧美日本色 | 久久国产精品歌舞团 | 亚洲精品成人一区二区 | 成人永久免费视频网站在线观看 | 91精品国产高清久久久久久io | 亚洲国产一区二区a毛片日本 | 亚洲黄a| 国内高清久久久久久久久 | 手机看片日本 | 久久久毛片免费全部播放 | 免费国产a理论片 | 亚洲性色视频 | 成人软件18免费 | 亚洲视频男人的天堂 | 日本精品久久久久久久久免费 | 日本xxxxx黄区免费看动漫 | 大美女香蕉丽人视频网站 | 中文字幕123区 | 69成人做爰视频在线观看 | 欧美成人观看视频在线 | 欧美在线观看www | 久久精品免视国产 | 亚洲人成网站在线观看播放 | 国产一久久香蕉国产线看观看 | 国产免费一级精品视频 | 色香欲综合成人免费视频 |