Ich glaube, dass dies als "internierte" Zeichenketten bekannt ist. Python macht das, Java auch, und C und C++ auch, wenn sie im optimierten Modus kompilieren.
Wenn Sie zwei identische Zeichenketten verwenden, verweisen alle internierten Zeichenketten mit demselben Inhalt auf denselben Speicher, anstatt Speicher zu verschwenden, indem zwei Zeichenkettenobjekte erstellt werden.
Dies führt dazu, dass der Python-Operator "is" True zurückgibt, weil zwei Strings mit demselben Inhalt auf dasselbe String-Objekt verweisen. Dies geschieht auch in Java und C.
Dies ist jedoch nur nützlich, um Speicherplatz zu sparen. Sie können sich nicht darauf verlassen, um auf String-Gleichheit zu testen, da die verschiedenen Interpreter, Compiler und JIT-Engines dies nicht immer tun können.