第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

可以在python中獲得“地址值”嗎?

可以在python中獲得“地址值”嗎?

BIG陽 2022-06-28 17:05:44
在下文中,我可以看到在 python 中添加整數(shù)時(shí),它會(huì)添加整數(shù),將結(jié)果值分配給新的內(nèi)存地址,然后將變量設(shè)置為指向該內(nèi)存地址:>>> a=100>>> id(a)4304852448>>> a+=5>>> id(a)4304852608有沒有辦法查看(舊)內(nèi)存地址 4304852448 (0x10096d5e0) 處的值是什么?例如:value_of(0x10096d5e0)
查看完整描述

2 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

它添加整數(shù),將結(jié)果值分配給新的內(nèi)存地址

不; 表示結(jié)果值的對象具有不同的內(nèi)存地址。通常,此對象是動(dòng)態(tài)創(chuàng)建的,但特別是對于整數(shù)(不可變,并且對于應(yīng)用類似優(yōu)化的某些其他類型),該對象可能已經(jīng)存在并可以重用。

有沒有辦法查看(舊)內(nèi)存地址 4304852448 (0x10096d5e0) 處的值是什么?

這個(gè)問題不好提出。首先,在這種情況下,“內(nèi)存地址”是虛擬化的,可能不止一次。其次,在 Python 模型中,地址沒有“值”。它們可能是對象的位置,而對象又代表值。

也就是說:在 previous 的位置,id(a)當(dāng)且僅當(dāng)它沒有被垃圾收集時(shí),舊對象仍然存在。為此,保留對該對象的一些其他引用就足夠了。(垃圾收集的時(shí)間是實(shí)現(xiàn)定義的,但是參考 CPython 實(shí)現(xiàn)是通過引用計(jì)數(shù)來實(shí)現(xiàn)垃圾收集的。)

通常,您無權(quán)直接檢查底層內(nèi)存(可能除了具有適當(dāng)權(quán)限的某種進(jìn)程間諜),因?yàn)?Python 并不是一種低級語言。(正如@xprilion 的回答,CPython 實(shí)現(xiàn)通過 提供了一個(gè)較低級別的內(nèi)存接口ctypes;但是,那里的代碼實(shí)際上是在進(jìn)行不安全的轉(zhuǎn)換。)

如果你這樣做了(假設(shè)是 CPython),你將不會(huì)100在第一次調(diào)用所指示的內(nèi)存位置中看到整數(shù)的二進(jìn)制表示id(a)- 你會(huì)看到PyObject用于在 C 代碼中實(shí)現(xiàn)對象的結(jié)構(gòu)的第一個(gè)字,它(如果我沒看錯(cuò)的)將是一個(gè)指向下一個(gè)活動(dòng)堆對象的指針(全部連接在一個(gè)雙向鏈表中)。

一旦它被垃圾收集,該內(nèi)存的內(nèi)容再次未定義。它們依賴于實(shí)現(xiàn),甚至專門針對 C 實(shí)現(xiàn),它們依賴于標(biāo)準(zhǔn)庫 free() 對內(nèi)存的處理。(通常它會(huì)保持不變,因?yàn)闆]有理由將其歸零并且這樣做需要時(shí)間。調(diào)試構(gòu)建可能會(huì)將特殊值寫入該內(nèi)存,因?yàn)樗兄跈z測內(nèi)存損壞。)


查看完整回答
反對 回復(fù) 2022-06-28
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

您正在嘗試取消引用內(nèi)存地址,就像 C/C++ 中使用的指針一樣。以下代碼可能會(huì)對您有所幫助 -


import ctypes


a = 100

b = id(a)


print(b, ": ", a)


a+=5

print(id(a), ": ", a)


print(ctypes.cast(b, ctypes.py_object).value)

輸出:

140489243334080 :  100

140489243334240 :  105

100

上面的示例確定存儲(chǔ)在 的先前地址中的值a保持不變。


查看完整回答
反對 回復(fù) 2022-06-28
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號