Objet Python de conversion
Supposons que nous avons un objet k
de type class A
. Nous avons défini un deuxième class B(A)
. Quelle est la meilleure pratique pour "convertir" objet k
à class B
et préserver toutes les données dans k
?
- De quelle façon vous êtes à la recherche pour convertir de l'un à l'autre? Voulez-vous conserver toutes les variables membres de la classe B de l'objet, mais l'utilisation de la classe parent d'Un ensemble de méthodes?
- Est-ce Assez Pauvre Polymorphisme? Soient A et B des sous-classes d'une super-classe commune? Si oui, c'est la mauvaise chose à faire? Aimeriez-vous que l'Un avait les mêmes méthodes que B? Cela se fait par le biais de multiples-l'héritage. Veuillez expliquer pourquoi vous pensez que vous avez besoin de cela parce que -- en Python -- vous le faites mal si vous pensez que vous avez besoin de moulage ou de conversion de type.
- Aussi très curieux au sujet de votre cas d'utilisation. Est-ce juste pour le plaisir, ou avez-vous trouvé ceci pour être une meilleure façon de résoudre un problème, d'autres qu'avec l'aide de classique polymorphisme?
- Selon votre problème, un des ces deux méthodes pour parvenir à un résultat similaire pourrait être approprié, sans se sentir comme un hack.
Vous devez vous connecter pour publier un commentaire.
Cela ne de la "classe de conversion", mais elle est sujette à des dommages collatéraux. La création d'un autre objet et le remplacement de ses
__dict__
comme BrainCore posté seraient plus en sécurité, mais ce code ne ce que vous avez demandé, sans nouvel objet créé.Cela satisfera votre cas d'utilisation? Remarque: Seules les variables d'instance de b sera accessible à partir de l'objet a, pas de classe B de variables de classe. Aussi, la modification de variables dans une volonté de modifier la variable b, sauf si vous avez un propriétédeepcopy:
a
etb
maintenant tous deux partagent la même__dict__
, réglagea.value
changementsb.value
trop.Ou vous pourriez avoir un sperate en fonction de cela:
Mais à l'aide de la 2e méthode, je n'étais pas en mesure de comprendre comment passer d'autres valeurs