python查看内存地址的内容_python中如何查看指定内存地址的内容

本文介绍了在Python中如何查看内存地址的内容,包括使用`getsizeof`获取对象大小和`ctypes.string_at`读取指定内存地址的字节内容。通过示例展示了对int类型和numpy数组内存布局的查看,帮助理解内存工作原理。
摘要由CSDN通过智能技术生成

python中一般并不需要查看内存内容,但作为从C/C++过来的人,有的时候还是想看看内存,有时是为了验证内容是否与预期一致,有时是为了探究下内存布局。

from sys import getsizeof

from ctypes import string_at

'''

getsizeof(...)

getsizeof(object, default) -> int

Return the size of object in bytes.

string_at(ptr, size=-1)

string_at(addr[, size]) -> string

Return the string at addr.

'''

getsizeof用于获取对象占用的内存大小,string_at用于获取指定地址、指定字节长度的内容,因为返回的对象类型是bytes,可以调用hex()函数转换成16进制查看。

对int对象的内存内容如下,首先通过函数id获取对象的内存地址。

i = 100

type(i)

# int

s = string_at(id(i), getsizeof(i))

type(s)

# bytes

s

# b'>\x00\x00\x00\x00\x00\x00\x00\xa0\x99\xfd\x1d\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00'

s.hex()

# '3e00000000000000

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值