J'ai une classe Foo
qui a une variable de chaîne d'instance id
. J'ai implémenté les méthodes magiques __eq__
et __hash__
pour qu'elles n'utilisent que id
, donc une instance Foo
et sa chaîne id
sont mappées sur le même compartiment de hachage. Cependant, disons qu'il y a un dict avec les touches Foo
instances, et j'ai seulement la chaîne id
. Je souhaite récupérer l'instance Foo
dans laquelle se trouve le id
.Récupérer la clé à partir de la clé dict
Une façon consiste à parcourir toutes les clés de la dict, mais y a-t-il quelque chose de plus efficace/simple?
J'ai besoin de récupérer la même référence de l'instance 'Foo' stockée dans le dict, donc l'instanciation d'une nouvelle instance de' Foo' n'est pas une option. J'aime l'idée d'avoir un 'dict' séparé purement pour les mappings' id: Foo'. Il sacrifie l'efficacité de l'espace pour la vitesse. La plupart du temps, la portée du code aura seulement la connaissance de la chaîne 'id' et il doit modifier l'instance' Foo' correspondante, donc je pense que je devrais aller avec le dict séparé. – onepiece
J'ai réalisé que mon code nécessitait un refactoring significatif. Les valeurs dans l'original 'dict' auraient dû être des variables d'instance dans' Foo', et la nouvelle dict est 'id: Foo'. Donc, ma question est discutable, mais toujours agréable de savoir que nous ne pouvons pas récupérer une clé en utilisant une clé pour les dictionnaires. – onepiece