Неизменяемые и изменчивые типы

Я запутался в том, что такое неизменный тип. Я знаюfloat объект считается неизменным, на примере такого типа из моей книги:

class RoundFloat(float):
    def __new__(cls, val):
        return float.__new__(cls, round(val, 2))

Считается ли это неизменным из-за структуры / иерархии классов?float находится на вершине класса и является собственным вызовом метода. Подобно этому типу примера (хотя моя книга говоритdict изменчиво):

class SortedKeyDict(dict):
    def __new__(cls, val):
        return dict.__new__(cls, val.clear())

В то время как что-то непостоянное имеет методы внутри класса, в следующем примере:

class SortedKeyDict_a(dict):
    def example(self):
        return self.keys()

Кроме того, для последнегоclass(SortedKeyDict_a), если я передам этот тип набора к нему:

d = (('zheng-cai', 67), ('hui-jun', 68),('xin-yi', 2))

без вызоваexample метод, он возвращает словарь.SortedKeyDict с участием__new__ помечает это как ошибку. Я пытался передать целые числа вRoundFloat класс с__new__ и это не помечено без ошибок.

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

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