溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python怎么通過地址獲取變量

發(fā)布時間:2022-05-16 11:41:38 來源:億速云 閱讀:240 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“Python怎么通過地址獲取變量”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python怎么通過地址獲取變量”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

通過地址獲取變量

類似于C/C++中令一個指針指向一個變量的地址,通過解引用可以得到變量的值。

利用ctypes模塊在Python中實現(xiàn)類似的功能:

import ctypes 
value='hello world' #定義一個字符串變量
address=id(value) #獲取value的地址,賦給address
get_value=ctypes.cast(address, ctypes.py_object).value #讀取地址中的變量
print(get_value)

得到輸出:

hello world

python的變量是什么?

變量皆指針的簡單理解

一句話:

萬物皆對象,變量皆指針

這里簡單介紹一下指針是什么:

指針起源自c語言,在c語言中,每一塊內(nèi)存(或者是每一段)都存在著一個單獨的變量用于標(biāo)識這一坨內(nèi)存,我們可以通過申請一個這樣的變量去指向一塊內(nèi)存,自然也可以改變一塊內(nèi)存所屬的這個變量,這個變量又叫地址也叫指針。

在c語言中,申請變量a

Python怎么通過地址獲取變量

需要標(biāo)識變量的類型,因此我們在做完這個申請操作之后,相當(dāng)于同時申請了一個int(整數(shù))大小的內(nèi)存和一個這塊內(nèi)存的地址(&a)

*****而在python中申請變量并不需要單獨表明申請變量的類型而是直接賦值就行了。

這就是python所獨有的消除指針概念的方法——直接把變量全換成指針

這就有點像打不過就加入:

因此在python中通過變量申請內(nèi)存空間,本質(zhì)上是申請了一個地址,這個地址告訴電腦從那一大塊的內(nèi)存哪兒開始存東西

所以大家很容易發(fā)現(xiàn)一個有趣的現(xiàn)象,python常見的就是三種類型的變量,而他們的大小上限幾乎就是一樣大的:)

因為相對于c語言來說,申請變量本身就限制了變量的最大大?。ㄓ薪凶鰞?nèi)存管理),而python給你開了個門(申請了個開頭的地址)你想往里塞多少都行(理論上)

但是其實也是有上限的(為了放置一個死循環(huán)在一個變量里就把你整塊內(nèi)存條炸掉)

我們可以通過sys模塊的maxsize函數(shù)來看看支持的最大整數(shù)值:

Python怎么通過地址獲取變量

 Python怎么通過地址獲取變量

讀到這里,這篇“Python怎么通過地址獲取變量”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI