Хочу прояснить для себя вкратце основные вещи на тему переменных в питоне. Как я понимаю, о переменных в питоне лучше думать как об указателях на какие-то объекты в памяти. Например
s = 'hello world'
x = s
Будут в реальности как-бы указателями на константную строку (в терминах языка Си), а не содержать копии этой строки (подобно std::string).
Точно также, если я написал
f = open('123.txt')
data = f.read()
f.close()
data2 = data
data3 = data
data, data2, data3 будут «указателями» на один кусок в памяти, находящийся в собственности у уборщика мусора, а не содержать каждая по копии данных? Поэтому пока я не делаю deepcopy, любые присвоения - это «работа с указателями» без потери производительности на копирование данных?
Спасибо.