访问对象内存地址

问题:

当您在Python中调用object.__repr__()方法时,您会得到以下内容:

 主要 .Test对象在0x2aba1c0cf890>

如果你超载__repr__(),然后调用super(Class, obj).__repr__()并重新设置它,有没有办法获取内存地址?

回答:

Python manual有关id()

返回一个对象的“identity”。这是一个整数(或长整型),在整个生命周期中,该对象被保证是唯一的,并且是常量的。具有非重叠生命周期的两个对象可能具有相同的id()值。 (实现说明:这是对象的地址。)

所以在CPython中,这将是对象的地址。没有任何其他Python解释器的保证。
请注意,如果您正在编写C扩展名,则可以完全访问Python解释器的内部,包括直接访问对象的地址。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Accessing object memory address

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

7 + 1 =