Je veux que ma classe implémente les fonctions Save et Load qui font simplement un cornichon de la classe. Mais apparemment, vous ne pouvez pas utiliser « soi » de la manière ci-dessous. Comment pouvez-vous faire cela?
Réponses
Trop de publicités?C’est ce que j’ai fini par faire. La mise à jour des `` moyens signifie que nous conservons toutes les nouvelles variables membres que j’ajoute à la classe et que nous mettons simplement à jour celles qui étaient là lorsque l’objet a été cornichonné pour la dernière fois. Cela semble le plus simple tout en conservant le code d’enregistrement et de chargement à l’intérieur de la classe elle-même, donc appeler le code ne fait qu’un object.save().
La partie dump doit fonctionner comme vous l’avez suggéré. pour la partie chargement, vous pouvez définir un @classmethod qui charge une instance à partir d’un fichier donné et la renvoie.
alors l’appelant ferait quelque chose comme :
C’est comme ça que je l’ai fait. L’avantage est que vous n’avez pas besoin de créer un nouvel objet. Vous pouvez simplement le charger directement.
Comment l’utiliser:
Ci-dessous, j’ai mis à jour la réponse avec un exemple minimal entièrement fonctionnel. Cela peut être adapté à vos propres besoins.
Il y a un exemple de la façon de décaper une instance ici, dans les documents. (Recherchez l’exemple « TextReader »). L’idée est de définir et
des méthodes, qui vous permettent de définir quelles données doivent être décapées, et comment utiliser ces données pour ré-instancier l’objet.