que tienen una clase como:__getattr__ para las variables estáticas/clase en Python
class MyClass:
Foo = 1
Bar = 2
Siempre que se invoca MyClass.Foo
o MyClass.Bar
, necesito un método personalizado que se debe invocar antes de devolver el valor. ¿Es posible en Python? Sé que es posible si creo una instancia de la clase y puedo definir mi propio método __getattr__
. Pero mi scnenario implica el uso de esta clase como tal sin crear ninguna instancia de la misma.
También necesito un método personalizado __str__
para invocar cuando se invoca str(MyClass.Foo)
. ¿Python proporciona esa opción?
Gracias Ignacio and Matt. Creo que ahora entiendo cómo funciona la creación de clase (no instancia) y también pensé que el comportamiento de __str__ requerido era difícil de lograr. Creo que las metaclases deberían ser lo suficientemente buenas para mi requerimiento. :) – Tuxdude
Si siempre obtienes 'AttributeError' mira la otra respuesta, que tiene la sintaxis para python3 (este ejemplo parece ser python2) – Chris