Back in Values, Variables, and Computer Memory, you learned that Python keeps track of each value in a separate object and that each object has a memory address. You can discover the actual memory address of an object using built-in function id:
| >>> help(id) |
| Help on built-in function id in module builtins: |
| |
| id(obj, /) |
| Return the identity of an object. |
| |
| This is guaranteed to be unique among simultaneously existing objects. |
| (CPython uses the object's memory address.) |
How cool is that? Let’s try it:
| >>> id(-9) |
| 4301189552 |
| >>> id(23.1) |
| 4298223160 |
| >>> shoe_size = 8.5 |
| >>> id(shoe_size) |
| 4298223112 |
| >>> fahrenheit = 77.7 |
| >>> id(fahrenheit) |
| 4298223064 |
The addresses you get will probably be different from what’s listed here since values get stored wherever there happens to be free space. Function objects also have memory addresses:
| >>> id(abs) |
| 4297868712 |
| >>> id(round) |
| 4297871160 |