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

python從內(nèi)存地址上加載python對象過程詳解

 更新時(shí)間:2020年01月08日 11:06:34   作者:potatso  
這篇文章主要介紹了python從內(nèi)存地址上加載pythn對象過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了python從內(nèi)存地址上加載pythn對象過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在python中我們可以通過id函數(shù)來獲取某個(gè)python對象的內(nèi)存地址,或者可以通過調(diào)用對象的__repr__魔術(shù)函數(shù)來獲取對象的詳細(xì)信息

def tt():
  print(111)
print(tt.__repr__())
print(id(tt))

但是不知大家是否想過,其實(shí)這個(gè)內(nèi)存地址可以直接加載python對象的。有兩種方法:

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

我們也可以通過gc的get_objects方法來實(shí)現(xiàn)。先來看一下官方介紹

gc.get_objects()
Returns a list of all objects tracked by the collector, excluding the list returned.

大致意思為,獲取所有可以追蹤的對象。所以,我們可以通過第二種方式來實(shí)現(xiàn)從特定內(nèi)存地址加載python對象

def tt():
  print(111)
print(tt.__repr__())

for i in gc.get_objects():
  if id(i) == id(tt):
    print(i)

方法很簡單,通過gc.get_objects獲取所有對象,一一檢查這些對象的內(nèi)存地址是否與給定的內(nèi)存地址相符,如果相符則返回對象。

結(jié)論

額,很扯淡的東西,最好不要亂用這種東西。因?yàn)槌鲥e(cuò)的話,try except語句都無法捕捉到這種異常。就當(dāng)是了解一下吧

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

云龙县| 旬阳县| 达孜县| 珲春市| 菏泽市| 宁陕县| 兴安县| 津市市| 靖远县| 万全县| 金昌市| 十堰市| 桦南县| 杂多县| 衡水市| 永靖县| 晋宁县| 仲巴县| 延庆县| 万州区| 仪陇县| 清水河县| 永泰县| 疏勒县| 嘉鱼县| 石门县| 黎城县| 钦州市| 南投县| 玛多县| 法库县| 洪雅县| 门头沟区| 恩施市| 灵寿县| 夏津县| 平顺县| 红安县| 峨眉山市| 杭锦旗| 望江县|