Czy Python internuje ciągi znaków?

W Javie jawnie zadeklarowane ciągi są internowane przez JVM, tak że kolejne deklaracje tego samego ciągu skutkują dwoma wskaźnikami do tej samej instancji String, a nie dwoma oddzielnymi (ale identycznymi) łańcuchami.

Na przykład:

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
}

Moje pytanie brzmi, czy CPython (lub jakiekolwiek inne środowisko wykonawcze Pythona) robi to samo dla ciągów znaków? Na przykład, jeśli mam jakąś klasę:

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

I stwórz 10 instancji tej klasy, czy każda z nich będzie miała zmienną instancji odwołującą się do tego samego ciągu w pamięci, czy też skończy się na 10 oddzielnych ciągach?

questionAnswers(3)

yourAnswerToTheQuestion