https://medium.com/broken-window/many-names-one-memory-address-122f78734cb6
>>> my_string = "Hello World"
>>> id(my_string)
140418271505840
>>> another_string = my_string
>>> id(another_string)
140418271505840
>>> another_string = another_string + "!"
>>> id(another_string)
140418271505200
>>> my_string = "Hello World"
>>> id(my_string)
140418271504752
>>> another_string = "Hello World"
>>> id(another_string)
140418271505776
assignment는 기본적으로 독립적인 메모리를 할당합니다.
>>> my_string = "hello"
>>> id(my_string)
140418271505840
>>> another_string = "hello"
>>> id(another_string)
140418271505840
CPython에서 아래의 경우 재사용 됩니다.
CPython, PyPy, Jython, IronPython 구현에 따라 다릅니다.
For interning an object, it must first search for the object in memory, and searching takes time. This is why the special treatment only applies for small integers and strings, because finding them is not that costly.
python string도 primitive type이다.
https://codeburst.io/explaining-value-vs-reference-in-javascript-647a975e12a0
javascript에서 string은 primitive type (not object) 입니다. - https://velog.io/@youngkiu/plural-data-type-comparison-of-javascript-and-python 그림 참조
var x = 10;
var y = 'abc';
var a = x;
var b = y;
a = 5;
b = 'def';
console.log(x, y, a, b); // -> 10, 'abc', 5, 'def'
python이든 javascript이든 primitive type은 immutable 하다.