Parcheo de clases en Python
-
12-09-2019 - |
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 )
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.)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow