最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年08月31日 14:34:03   作者:五月的白色鈴蘭  
這篇文章主要介紹了Python動態(tài)類型實現(xiàn)原理及過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

a = 3

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

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

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

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

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

a = 3
b = a

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

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

原處修改對象

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

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

可變對象:列表,字典

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

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

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

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

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

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

a[0] = 4
print(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] = 4
print(a)# [4, 2, 3]
print(b)# [1, 2, 3]

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

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

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

import copy

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

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

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

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

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

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

相關文章

  • Spring Boot實現(xiàn)自動發(fā)送郵件

    Spring Boot實現(xiàn)自動發(fā)送郵件

    這篇文章主要為大家詳細介紹了Spring Boot實現(xiàn)自動發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • IDEA導入geoserver項目的詳細步驟及注意事項

    IDEA導入geoserver項目的詳細步驟及注意事項

    由于GeoServer是基于Java開發(fā)的。因此在安裝之前,必須確保安裝了Java。本文給大家分享IDEA導入geoserver項目的詳細步驟及注意事項,感興趣的朋友一起看看吧
    2021-06-06
  • SpringBoot實現(xiàn)自定義配置文件提示的方法

    SpringBoot實現(xiàn)自定義配置文件提示的方法

    這篇文章主要介紹了SpringBoot實現(xiàn)自定義配置文件提示的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 詳解查看JAVA API及JAVA源碼的方法

    詳解查看JAVA API及JAVA源碼的方法

    這篇文章主要介紹了查看JAVA API及JAVA源碼的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • springboot 無法掃描到父類模塊中Bean的原因及解決

    springboot 無法掃描到父類模塊中Bean的原因及解決

    這篇文章主要介紹了springboot 無法掃描到父類模塊中Bean的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 批量將現(xiàn)有Jar包上傳到Maven私服

    批量將現(xiàn)有Jar包上傳到Maven私服

    今天小編就為大家分享一篇關于批量將現(xiàn)有Jar包上傳到Maven私服,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 微信支付H5調用支付詳解(java版)

    微信支付H5調用支付詳解(java版)

    本篇文章主要介紹了微信支付H5調用支付詳解,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2016-12-12
  • SpringBoot中異常處理實戰(zhàn)記錄

    SpringBoot中異常處理實戰(zhàn)記錄

    在我們實際項目開放中經(jīng)常需要我們處理很多的異常,如何在spring boot項目里面實現(xiàn)異常處理呢,下面這篇文章主要給大家介紹了關于SpringBoot中異常處理的相關資料,需要的朋友可以參考下
    2022-05-05
  • PowerJob的QueryConvertUtils工作流程源碼解讀

    PowerJob的QueryConvertUtils工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的QueryConvertUtils工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Java接口和抽象類原理詳解

    Java接口和抽象類原理詳解

    這篇文章主要介紹了Java接口和抽象類原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論

雷州市| 梓潼县| 松阳县| 霍邱县| 吴川市| 云林县| 涞源县| 绍兴市| 大英县| 水城县| 宜川县| 江安县| 靖边县| 叙永县| 华容县| 泰和县| 自贡市| 乌拉特后旗| 托克逊县| 全南县| 鄂托克旗| 手游| 白水县| 延川县| 濮阳市| 新巴尔虎右旗| 赣州市| 黄骅市| 云浮市| 抚远县| 普兰县| 武陟县| 富平县| 南京市| 江城| 肇庆市| 玉树县| 安溪县| 靖州| 苍溪县| 桃园县|