在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(内存地址,长度)))