您可以取消引用從idPython中的函數(shù)檢索的變量ID 嗎?例如:dereference(id(a)) == a我想從學(xué)術(shù)角度了解;我了解還有更實用的方法。
3 回答

蝴蝶不菲
TA貢獻(xiàn)1810條經(jīng)驗 獲得超4個贊
這是一個實用程序函數(shù),該函數(shù)基于“ Tiran”在Hophat Abc所引用的討論中提出的評論,該評論將在Python 2和3中都適用:
import _ctypes
def di(obj_id):
""" Inverse of id() function. """
return _ctypes.PyObj_FromPtr(obj_id)
if __name__ == '__main__':
a = 42
b = 'answer'
print(di(id(a))) # -> 42
print(di(id(b))) # -> answer

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗 獲得超11個贊
不容易。
您可以遍歷gc.get_objects()列表,測試每個對象是否相同,id()但這不是很實際。
該id()函數(shù)不可取消引用;它基于內(nèi)存地址的事實是CPython實現(xiàn)的詳細(xì)信息,其他Python實現(xiàn)則不遵循。
添加回答
舉報
0/150
提交
取消