Before MS Office switched to the *x formats (docx xlsx pptx etc. - which are zipped XML files you can open them with 7-Zip and take a look inside) they just dump data structures directly to a file function pointers and all. A Python reference cannot be saved to a file as it not data (while pointers are - for example theyre often 32-bit or 64-bit integers and can be treated as such if desired). Now what they were doing back then would be a bit problematic today due to ASLR (Address Space Layout Randomization) but at the time it was a good solution IMHO. Also you cannot create a reference to an arbitrary memory location they can only be created from objects that Python knows about (which is a problem if said object is actually created by the hardware e.g. like we have with memory mapped registers). HOWEVER as long as you stay within Python little walled garden and don need to interact with the outside world you can actually simulate pointers if you want just create lists to represent your memory and use indices into those lists to represent your pointers mem = None * 124 code mem42 = h code mem43 = e code mem44 = l code mem45 = l code mem46 = o code def prnt(ptr) code while (memptr != None) code print(memptr end=) code ptr += 1 code print() code code code hiptr = 42 code prnt(hiptr) code hello code If you do italic actually need the outside world there cs That one can give you C pointers in Python.