Цель интернирования состоит в том, чтобы иметь возможность сравнивать их, сравнивая их адреса памяти;вы гарантируете, что никогда не создадите два объекта с одинаковым значением (когда программа запрашивает создание второго объекта с тем же значением, что и у существующего объекта, она вместо этого получает ссылку на ранее существующий объект).Это требует, чтобы вещи, которые вы интернировали, были неизменными ;если значение интернированного объекта может измениться, сравнение их по адресу не будет работать.
В Python невозможно обеспечить неизменность экземпляров определенных пользователем классов, поэтому это не будетбезопасно интернировать их.Я подозреваю, что это основная теоретическая причина, по которой стажер не охватывает экземпляры классов.
Другие встроенные неизменяемые типы уже сравнимы в одной операции на уровне машины (int, float и т. Д.) Или в неизменяемых контейнерах, которые может содержать изменяемые значения (tuple, frozenset).Нет необходимости интернировать первого, а второго нельзя безопасно интернировать.