Lorsque j'instancie une classe particulière que j'ai écrite, je lui attribue un nom et plusieurs propriétés en tant qu'arguments de __init__
. En fonction du nom passé, mon __init__
tente de trouver un fichier sur le disque qui correspond à ce nom et, au lieu de traiter les autres arguments passés, il lit tous ces éléments à partir du fichier. Et si le fichier n'est pas trouvé, les arguments sont utilisés à la place.
Maintenant je me demande, si je voulais utiliser pickle
pour stocker l'objet entier au lieu d'utiliser mes propres routines pour écrire des fichiers, comment pourrais-je accomplir le chargement? Je ne peux pas désérialiser mon objet à l'intérieur de __init__
car l'objet a déjà été créé, n'est-ce pas?
Une idée que j'ai est d'écrire une méthode de classe que j'utiliserais pour l'instanciation à la place, et qui renverrait un objet désérialisé s'il est stocké sur le disque, sinon il créerait un nouvel objet avec les paramètres passés.
Une autre idée est d'utiliser __new__
au lieu d'une méthode de classe qui renverrait un objet, cependant je ne sais pas si c'est l'utilisation prévue de __new__
.
Ces idées sont-elles bonnes ou existe-t-il un meilleur moyen d'accomplir ceci?