日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語言 正文

Python如何通過地址獲取變量_python

作者:qq_2579440213 ? 更新時(shí)間: 2022-07-08 編程語言

通過地址獲取變量

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

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

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

得到輸出:

hello world

python的變量是什么?

變量皆指針的簡(jiǎn)單理解

一句話:

萬物皆對(duì)象,變量皆指針

這里簡(jiǎn)單介紹一下指針是什么:

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

在c語言中,申請(qǐng)變量a

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

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

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

這就有點(diǎn)像打不過就加入:

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

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

因?yàn)橄鄬?duì)于c語言來說,申請(qǐng)變量本身就限制了變量的最大大小(有叫做內(nèi)存管理),而python給你開了個(gè)門(申請(qǐng)了個(gè)開頭的地址)你想往里塞多少都行(理論上)

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

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

?

原文鏈接:https://blog.csdn.net/qq_33474442/article/details/85069493

欄目分類
最近更新