predicciones - Conversión de objetos Python
predicciones python (2)
Esto hace la "conversión de clase" pero está sujeto a daños colaterales. Crear otro objeto y reemplazar su __dict__ como BrainCore publicado sería más seguro, pero este código hace lo que pidió, sin que se cree ningún objeto nuevo.
class A(object):
pass
class B(A):
def __add__(self, other):
return self.value + other
a = A()
a.value = 5
a.__class__ = B
print a + 10
Supongamos que tenemos un objeto k de tipo class A Definimos una segunda class B(A) . ¿Cuál es la mejor práctica para "convertir" el objeto k a la class B y preservar todos los datos en k ?
a = A() # parent class
b = B() # subclass
b.value = 3 # random setting of values
a.__dict__ = b.__dict__ # give object a b''s values
# now proceed to use object a
¿Esto satisfaría su caso de uso? Nota: Solo las variables de instancia de b serán accesibles desde el objeto a, no desde las variables de clase de la clase B. Además, la modificación de las variables en a modificará la variable en b, a menos que haga una copia profunda:
import copy
a.__dict__ = copy.deepcopy(b.__dict__)