python获取内存地址上存储的值

在python中,可以通过id()这个方法来获取对象的内存地址。

但是反过来,怎么获取内存地址上存储的值?

先看一段代码:

from ctypes import string_at
from sys import getsizeof
from binascii import hexlify
a = 2333
print(hexlify(string_at(id(a),getsizeof(a))))

方法详解:

getsizeof(object,default)-->int    :返回对象的大小,
string_at(addr[,size])-->string    :返回从指定地址开始,长度为size的字符串(实际上是把从指定地址开始的二进制数据转换成字符串
hexlify(data)              :返回二进制数据的十六进制表示形式

所以最后可以用如下代码获取内存地址上存储的值:

print(hexlify(string_at(内存地址,长度)))

 

转载于:https://www.cnblogs.com/wujiecong/p/11583540.html