python從內(nèi)存地址上加載python對(duì)象過(guò)程詳解
這篇文章主要介紹了python從內(nèi)存地址上加載pythn對(duì)象過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
在python中我們可以通過(guò)id函數(shù)來(lái)獲取某個(gè)python對(duì)象的內(nèi)存地址,或者可以通過(guò)調(diào)用對(duì)象的__repr__魔術(shù)函數(shù)來(lái)獲取對(duì)象的詳細(xì)信息
def tt(): print(111) print(tt.__repr__()) print(id(tt))
但是不知大家是否想過(guò),其實(shí)這個(gè)內(nèi)存地址可以直接加載python對(duì)象的。有兩種方法:
1. PyObj_FromPtr
在_ctypes包中,就提供PyObj_FromPtr這個(gè)api去實(shí)現(xiàn)我們的需求。代碼如下
def tt(): print(111) print(tt.__repr__()) print(_ctypes.PyObj_FromPtr(id(tt)))
運(yùn)行結(jié)果如下:
<function tt at 0x106c628c8> <function tt at 0x106c628c8>
2. gc.get_objects
我們也可以通過(guò)gc的get_objects方法來(lái)實(shí)現(xiàn)。先來(lái)看一下官方介紹
gc.get_objects() Returns a list of all objects tracked by the collector, excluding the list returned.
大致意思為,獲取所有可以追蹤的對(duì)象。所以,我們可以通過(guò)第二種方式來(lái)實(shí)現(xiàn)從特定內(nèi)存地址加載python對(duì)象
def tt(): print(111) print(tt.__repr__()) for i in gc.get_objects(): if id(i) == id(tt): print(i)
方法很簡(jiǎn)單,通過(guò)gc.get_objects獲取所有對(duì)象,一一檢查這些對(duì)象的內(nèi)存地址是否與給定的內(nèi)存地址相符,如果相符則返回對(duì)象。
結(jié)論
額,很扯淡的東西,最好不要亂用這種東西。因?yàn)槌鲥e(cuò)的話,try except語(yǔ)句都無(wú)法捕捉到這種異常。就當(dāng)是了解一下吧
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django連接數(shù)據(jù)庫(kù)并實(shí)現(xiàn)讀寫分離過(guò)程解析
這篇文章主要介紹了Django連接數(shù)據(jù)庫(kù)并實(shí)現(xiàn)讀寫分離過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python使用__new__()方法為對(duì)象分配內(nèi)存及返回對(duì)象的引用示例
這篇文章主要介紹了Python使用__new__()方法為對(duì)象分配內(nèi)存及返回對(duì)象的引用,結(jié)合實(shí)例形式分析了Python對(duì)象初始化及內(nèi)存操作相關(guān)使用技巧,需要的朋友可以參考下2019-09-09python庫(kù)TextDistance量化文本之間的相似度算法探究
這篇文章主要為大家介紹了python庫(kù)TextDistance量化文本之間的相似度算法探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python讀取txt內(nèi)容寫入xls格式excel中的方法
今天小編就為大家分享一篇Python讀取txt內(nèi)容寫入xls格式excel中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10pytorch之inception_v3的實(shí)現(xiàn)案例
今天小編就為大家分享一篇pytorch之inception_v3的實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python 標(biāo)準(zhǔn)庫(kù)原理與用法詳解之os.path篇
os.path模塊主要用于文件的屬性獲取,在編程中經(jīng)常用到,本文將帶你熟悉這個(gè)模塊并掌握它的用法,感興趣的朋友跟小編來(lái)看看吧2021-10-10Python采集電影評(píng)論實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Python采集電影評(píng)論實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04