I've written a page about how Python names and values work: Fact and myths about Python names and values.
Other people have written about this, but maybe my small effort will help.
As always, my problem with explaining stuff like this is knowing where to start, and how to build, and what to leave out. In other words, trimming and linearizing the concept graph.
As a result, finishing a page like this just creates more drafts in my mind. Who knows where it will end??