On Friday, May 20, 2016 at 9:05:51 PM UTC-4, jf...@ms4.hinet.net wrote:
> Is there any tools which can do the memory dump of an object so I can view 
> their content or implementation? For example,
> 
> >>> s1 = '\x80abc'
> >>> b1 = b'\x80abc'
> 
> What are exactly stored in memory for each of them? Is their content really 
> the same? This kind of tool should be helpful "for me" to learn the inner 
> detail of Python. 

I don't know of a tool that will do that, other than running CPython under
the gdb debugger, and examining memory that way.

In Python 2, those two objects are the same, because '...' is a byte string,
and b'...' is a byte string.

I should say, those objects' memory starts out exactly the same.  Objects have
reference counts which change as names come and go:

    >>> s1 = '\x80abc'
    >>> b1 = b'\x80abc'
    >>> b2 = b1

Now the first string has a reference count of 1, and b1 has a reference count
of 2. Those counts are in the objects' memory, so now their memory contents
are different.

--Ned.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to