My question is: How can I read the content of a memory address in python? example: ptr = id(7) I want to read the content of memory pointed by ptr. Thanks.
In Python, you don't generally use pointers to access memory unless you're interfacing with a C application. If that is what you need, have a look at the ctypes module for the accessor functions.
We can get an address using the id() function. id() function gives the address of the particular object.
The memory is taken from the Python private heap. Object domain: intended for allocating memory belonging to Python objects. The memory is taken from the Python private heap.
We can see the location of the memory address of that value with the id() function. Think of that long number as a storage jar. I can check the location of the value associated with peanut_butter by passing my variable to the id() function.
Have a look at ctypes.string_at. Here's an example. It dumps the raw data structure of a CPython integer.
from ctypes import string_at from sys import getsizeof a = 0x7fff print(string_at(id(a),getsizeof(a)).hex())
Output:
0200000000000000d00fbeaafe7f00000100000000000000ff7f0000
Note that this works with the CPython implementation because id()
happens to return the virtual memory address of a Python object, but this is not guaranteed by the Python language itself.
In Python, you don't generally use pointers to access memory unless you're interfacing with a C application. If that is what you need, have a look at the ctypes module for the accessor functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With