str numeros nombres letras float declarar convertir caracter asignaciones python iterable-unpacking

numeros - Objeto de actualización de Python del diccionario



nombres de variables en python (3)

Has probado

f.__dict__.update( b )

?

¿Existe una función / operador incorporado que pueda usar para descomprimir valores de un diccionario y asignarlos a variables de instancia?

Esto es lo que pretendo hacer:

c = MyClass() c.foo = 123 c.bar = 123 # c.foo == 123 and c.bar == 123 d = {''bar'': 456} c.update(d) # c.foo == 123 and c.bar == 456

¿Algo parecido a la update() diccionario update() que carga valores de otro diccionario, pero para instancia de objeto / clase simple?


también hay otra forma de hacerlo al recorrer los elementos en d. esto no tiene la misma consideración de que se almacenarán en c.__dict__ que no siempre es cierto.

d = {''bar'': 456} for key,value in d.items(): setattr(c,key,value)

o podría escribir un método de update como parte de MyClass para que c.update(d) funcione como esperaba.

def update(self,newdata): for key,value in newdata: setattr(self,key,value)

echa un vistazo a la ayuda para setattr

setattr(...) setattr(object, name, value) Set a named attribute on an object; setattr(x, ''y'', v) is equivalent to ''''x.y = v''''.


Además, tal vez sería un buen estilo tener un contenedor alrededor del método de actualización del dict:

def update(self, b): self.__dict__.update(b)

PD: Perdón por no haber comentado en la publicación de @ S.Lott , pero todavía no tengo la representante.