Pregunta

Supongamos que tengo una clase Python que quiero añadir una propiedad adicional para.

¿Hay alguna diferencia entre

import path.MyClass
MyClass.foo = bar

y usar algo como:

import path.MyClass
setattr(MyClass, 'foo', bar)

Si no, ¿por qué las personas parecen hacer el segundo lugar de la primera? (Por ejemplo, aquí http:. //Concisionandconcinnity.blogspot. com / 2008/10 / encadenamiento-mono-manchas-en-python.html )

¿Fue útil?

Solución

Las declaraciones son equivalentes, pero setattr podrían utilizarse porque es la opción más dinámica de los dos (con setattr puede utilizar una variable para el nombre del atributo.)

Ver: http://docs.python.org/library/functions.html# setattr

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top