Supongamos que tengo una clase de Python a la que deseo agregar una propiedad adicional.Clases de parches en Python
¿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é la gente parece hacer la segunda en lugar de la primera? (. Por ejemplo, aquí http://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html) (. Con setattr puede utilizar una variable para el nombre del atributo)
¿Por qué no actualizar la definición de su clase con el método adicional? ¿Por qué hacer todas estas cosas "mágicas" cuando simplemente puedes editar la definición de clase? –
En mi problema particular cuando pregunté esto, la clase provenía de una biblioteca que no queríamos cambiar; y no podríamos subclasificarlo. Aunque estoy de acuerdo en general. – interstar