Estoy depurando algo de Python que toma, como entrada, una lista de objetos, cada uno con algunos atributos.¿Es posible crear objetos anónimos en Python?
Me gustaría codificar algunos valores de prueba, digamos, una lista de cuatro objetos cuyo atributo "foo" se establece en algún número.
¿Hay una manera más concisa que esto?
x1.foo = 1
x2.foo = 2
x3.foo = 3
x4.foo = 4
myfunc([x1, x2, x3, x4])
Idealmente, sólo me gustaría ser capaz de decir algo como:
myfunc([<foo=1>, <foo=2>, <foo=3>, <foo=4>])
(Obviamente, que se realiza en marcha la sintaxis pero ¿hay algo similar que realmente funciona.?)
Nota: Esto nunca se registrará. Es solo un código de depuración desechable. Así que no se preocupe por la legibilidad o mantenimiento.
Sin embargo, si está creando un montón de estos, puede ahorrar algo de tiempo/memoria usando el diccionario dado en lugar de crear uno nuevo y copiar todas las entradas. Sin embargo, * realmente * no importa. –
bueno, podría ser subjetivo, pero no veo una simplificación sustancial. Sí, usas __init__ y actualización, pero aún estás jugando con __dict__. – Tetha
Tienes razón, no hay una simplificación significativa. Es más corto y no usa __new__, eso es todo. – DzinX