Immuable vs Mutable types

Je suis confus sur ce qu'est un immuable type est. Je sais que le float objet est considéré comme immuable, avec ce type d'exemple de mon livre:

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

Est-il considéré comme immuable en raison de la structure de classe /de la hiérarchie?, sens float est au top de la classe et qui est son propre appel de méthode. Similaire à ce type d'exemple (même si mon livre dit dict est mutable):

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

Alors que quelque chose mutable a des méthodes à l'intérieur de la classe, avec ce type d'exemple:

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

Aussi, pour la dernière class(SortedKeyDict_a), si je passe ce type de jeu de:

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

sans appel de la example méthode, il retourne un dictionnaire. Le SortedKeyDict avec __new__ drapeaux comme une erreur. J'ai essayé en passant entiers à la RoundFloat classe avec __new__ et qu'elle avait pas d'erreurs.

InformationsquelleAutor user1027217 | 2011-11-08