Il semble que Python ait des limitations concernant les méthodes d'instance. P>
Ceci est problématique pour moi, car je travaille sur un Projet dans lequel je référent les méthodes d'instance, et Il y a une utilisation à la fois de profonde et de décapage. La chose de décapage est faite principalement par le mécanisme de multirofense. P>
Quel serait un bon moyen de résoudre ce problème? J'ai fait de la sollicitude laide à la question de la copie, mais Je cherche une solution plus agréable aux deux problèmes. P>
Quelqu'un a-t-il des suggestions? P>
Mon cas d'utilisation: j'ai un système d'événements minuscule. Chaque événement comporte un attribut code> code> qui pointe vers une fonction qu'elle est censée déclencher, et parfois cette fonction est une méthode d'instance de certains objets. P>
3 Réponses :
REST - Virement d'état de représentation. Il suffit d'envoyer l'état, pas des méthodes. P>
Transférer un objet X de A à B, nous faisons cela. P>
a coder l'état de x dans certains Notation pratique et facile à analyser. Json est populaire. p> li>
a envoie le texte JSON à b. p> li>
B décode l'état de x formulaire JSON notation, reconstruite x. p> li> ol>
B doit avoir les définitions de la classe de la classe de X pour que cela fonctionne. B doit avoir toutes les fonctions et autres définitions de classe sur lesquelles dépend de la classe X. En bref, à la fois un et b ont toutes les définitions. Seule une représentation de l'état de l'objet est déplacé autour de. p>
Voir n'importe quel article sur le repos. P>
http://fr.wikipedia.org/wiki/representéal_state_transfert p>
http://www.ics.uci.edu/ ~ Fielonnement / pubs / Dissertation / Top.htm P>
Pouvez-vous s'il vous plaît expliquer comment cette méthodologie concerne mon problème avec le système d'événements?
C'est une réponse "tu fais mal". Cette vue est que cornichon code> est peut-être un peu aussi i> pratique en python; Il est préférable d'échanger des données anciennes simples (par opposition à des graphiques d'objet) car il en résulte des systèmes plus simples qui sont saners à la raison de. Il y a quelque chose dans cela, mais si cela vous est utile, ce sera utile à long terme.
cornichez l'instance, puis accédez à la méthode après le désactivation. Pickling Une méthode d'instance n'a pas de sens car elle s'appuie sur l'instance. Si ce n'est pas le cas, écrivez-le comme une fonction indépendante.
A () n'est pas une méthode d'instance.
Vous avez marqué l'objet, pas la méthode d'instance. Essayez de décharger une méthode d'instance directement.
Pickle l'instance, puis accédez à la méthode après le désactivation. Pickling Une méthode d'instance n'a pas de sens car elle s'appuie sur l'instance. Si ce n'est pas le cas, écrivez-le comme une fonction indépendante.
Vous pourriez être capable de le faire en utilisant Ceci ne stocke pas le code em> de la méthode, juste son nom; Mais cela fonctionnera correctement dans le cas commun. P> Ceci fait à la fois le décapage et la copie de travail! P> P> copy_reg.pickle Code>
. En Python 2.6:
Bonne idée, je pense que ce pourrait être la solution la plus propre. Avez-vous une idée pour l'autre problème, copier? Aussi, quelqu'un a-t-il déjà implémenté une solution copy_reg code> que je peux utiliser?
Habituellement, nous fournissons le code dans tous les endroits dans lesquels nous travaillons et déplacons simplement une représentation de l'état autour de l'état. Le transfert d'état de représentation est plus courant et plus simple. Qu'est-ce qui ne va pas avec ça?
S.Lott, vous avez clairement plus d'expérience avec ce problème, mais veuillez m'expliquer à moi de manière plus gênante, qu'est-ce que vous suggérez exactement, comment se rapporte-t-il, quel est le "transfert d'état de représentation", etc.
Vous dites "Je veux griller des méthodes d'instance", mais vous ne dites pas pourquoi. Cela nous aiderait à savoir quel problème vous essayez de résoudre, car il peut y avoir une façon plus pythonique de le faire. Ça sonne un peu comme si tu penses à Ruby ...
Jonathan: J'ai un petit système d'événements. Chaque événement a un attribut
code> qui pointe vers une fonction qu'il est censé déclencher, et parfois cette fonction est une méthode d'instance de certains objets.
@ Cool-RR: Veuillez ne pas commenter votre propre question. C'est ta question. Tu le possèdes. Veuillez mettre à jour la question avec des informations supplémentaires.