Python интернирует строки?

В Java явно объявленные строки интернируются JVM, поэтому последующие объявления одной и той же строки приводят к двум указателям на один и тот же экземпляр String, а не к двум отдельным (но идентичным) строкам.

Например:

public String baz() {
    String a = "astring";
    return a;
}

public String bar() {
    String b = "astring"
    return b;
}

public void main() {
    String a = baz()
    String b = bar()
    assert(a == b) // passes
}

Мой вопрос заключается в том, делает ли CPython (или любая другая среда выполнения Python) то же самое для строк? Например, если у меня есть какой-то класс:

class example():
    def __init__():
        self._inst = 'instance' 

И создайте 10 экземпляров этого класса, будет ли у каждого из них переменная экземпляра, ссылающаяся на одну и ту же строку в памяти, или я получу 10 отдельных строк?

Ответы на вопрос(3)

Ваш ответ на вопрос