88 votes

Comment se mariner?

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?

51voto

Mark Points 1740

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().

30voto

Ofri Raviv Points 10600

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 :

6voto

Sorin Dragan Points 18

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.

2voto

unutbu Points 222216

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X