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

python中的變量與內(nèi)存用法

 更新時間:2024年06月26日 11:30:59   作者:永遠的麥田  
這篇文章主要介紹了python變量與內(nèi)存用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、變量與內(nèi)存的結(jié)構(gòu)關(guān)系

python的變量類似于標(biāo)簽的作用,內(nèi)容散布于內(nèi)存中,為了方便管理,用變量把這些內(nèi)存中的內(nèi)容標(biāo)示出來。

如下圖所示:

一般python的內(nèi)存結(jié)構(gòu)以64字節(jié)為一個單位,隨便在python中申明變量abcdef,并賦上值,對應(yīng)的內(nèi)存結(jié)構(gòu)大致是這樣:

需要注意的是:

分配出來的內(nèi)存可能是連續(xù)的,下一個內(nèi)存比上一個內(nèi)存多64個字節(jié),也可能是不連續(xù)的,為64個字節(jié)的倍數(shù)。

這樣就可以看出來,變量a或是b只是一個標(biāo)簽,指向?qū)嶋H的內(nèi)容,方便人類識別他們代表什么東西。

如果把a指向的值賦給b,把e指向的字符串賦給f會發(fā)生什么呢,

下圖可以表示:

標(biāo)簽a和b指向了實際內(nèi)容0x12345678, e和f指向了實際內(nèi)容"dog“,針對地址0x16a0c466650上的值0x98981234還存在這個地址上,只是暫時沒有變量指向他(在沒有被系統(tǒng)回收前),同樣,地址0x16a788e32f0上表示的字符串"cat”也同樣沒有變量指向他。

二、變量的內(nèi)存表示

變量的內(nèi)存表示很簡單,id()可表示內(nèi)存的十進制,若要表示其16進制,再加上hex即可

在第一幅圖中變量a和b的指向的地址分別為

  • >>>hex(id(a))
  • '0x16a0c466610'
  • >>>hex(id(b))
  • '0x16a0c466650'

在第二幅圖中變量a和b的指向相同的內(nèi)存地址

  • >>>hex(id(a))
  • '0x16a0c466610'
  • >>>hex(id(b))
  • '0x16a0c466610'

三、查看內(nèi)存地址的變量

可以用到ctypes的string_at, sys中的getsizeof,再通過binascii中的hexlify進行轉(zhuǎn)碼

# -*- coding: utf-8 -*-
from ctypes import string_at
from sys import getsizeof
from binascii import hexlify
 
a = 0x12345678
print(hexlify(string_at(id(a), getsizeof(a))))

打印出來的代碼:

b'0300000000000000d00fcd4dfb7f0000010000000000000078563412'

這兒看到末尾的78563412, 相當(dāng)于12, 34, 56, 78 這4個字節(jié)進行了倒序排一下。

由此我們發(fā)現(xiàn)內(nèi)存中數(shù)據(jù)的表示和我們變量的表示是有一定的差異的。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python+opencv像素的加減和加權(quán)操作的實現(xiàn)

    python+opencv像素的加減和加權(quán)操作的實現(xiàn)

    這篇文章主要介紹了python+opencv像素的加減和加權(quán)操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python最長回文串算法

    python最長回文串算法

    這篇文章主要為大家詳細介紹了python最長回文串算法的實踐,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python進行音頻片斷合成的控制的幾種方法實現(xiàn)

    Python進行音頻片斷合成的控制的幾種方法實現(xiàn)

    本文主要介紹了Python進行音頻片斷合成的控制的幾種方法實現(xiàn),包括synthesizer庫自定義波形、pydub處理音頻片段、gtts和pyttsx3文本轉(zhuǎn)語音及pico2wave,感興趣的可以了解一下
    2025-06-06
  • 詳解Python中的四種隊列

    詳解Python中的四種隊列

    隊列是一種只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。這篇文章主要介紹了Python中的四種隊列,需要的朋友可以參考下
    2018-05-05
  • python函數(shù)的5種參數(shù)詳解

    python函數(shù)的5種參數(shù)詳解

    昨天看《Python核心編程》的時候,剛好看到了函數(shù)部分,于是順勢將目前接觸到的集中參數(shù)類型都總結(jié)一下吧^^
    2017-02-02
  • python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件

    python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件

    這篇文章主要為大家詳細介紹了python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 解決django FileFIELD的編碼問題

    解決django FileFIELD的編碼問題

    這篇文章主要介紹了解決django FileFIELD的編碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python基于pip實現(xiàn)離線打包過程詳解

    Python基于pip實現(xiàn)離線打包過程詳解

    這篇文章主要介紹了Python基于pip實現(xiàn)離線打包過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 關(guān)于Python連接Cassandra容器進行查詢的問題

    關(guān)于Python連接Cassandra容器進行查詢的問題

    這篇文章主要介紹了Python連接Cassandra容器進行查詢的問題,問題的關(guān)鍵在于尋找到Cassandra的9042端口,從而獲取數(shù)據(jù),具有內(nèi)容詳情跟隨小編一起看看吧
    2021-11-11
  • 深度辨析Python的eval()與exec()的方法

    深度辨析Python的eval()與exec()的方法

    這篇文章主要介紹了深度辨析Python的eval()與exec()的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03

最新評論

南陵县| 城固县| 巴彦淖尔市| 石首市| 泰州市| 微山县| 岱山县| 沾益县| 鸡泽县| 睢宁县| 牡丹江市| 武功县| 南投市| 祁阳县| 太康县| 靖远县| 南皮县| 景宁| 辉南县| 平阳县| 霸州市| 南溪县| 潮州市| 集贤县| 临西县| 香河县| 蒲江县| 绥棱县| 黄梅县| 盖州市| 浦江县| 略阳县| 阿拉善右旗| 本溪| 安陆市| 彰武县| 莱阳市| 衢州市| 岑溪市| 布尔津县| 本溪市|