[pyar] ejecutar metodo pasado por parametro

Javier Marcon javiermarcon en gmail.com
Vie Oct 3 09:43:40 ART 2014


El 02/10/14 a las 11:53, Gabriel Davini escibió:
>
> 2014-10-02 11:37 GMT-03:00 Javier Marcon <javiermarcon en gmail.com
> <mailto:javiermarcon en gmail.com>>:
>
>     Hola, a un metodo de una clase le quiero pasar un parámetro que sea el
>     nombre de un método de otra calase y que me lo ejecute como el
>     metodo de
>     la otra clase:
>
>
> Hola, si entiendo bien vos querés hacer algo asi:
>
> class A():
>     def warn(self, msj):
>          print "warn: %s" % msg  
>     def info(self, msj):
>          print "info: %s" % msg  
>     def error(self, msj):
>          print "error: %s" % msg  
>
> class B():
>      def mensaje(self, nivel, msj):
>           a = A()
>           try:
>               getattr(a, nivel)(msj)
>           except AttributeError:
>               print "no existe el método '%s' en la clase A" % nivel
>
> >> b = B()
> >> b.mensaje("info", "este es un info")
> "info: este es un info"
> >> b.mensaje("warn", "este es un warn")
> "warn: este es un warn"
> >> b.mensaje("noexiste", "este metodo no existe")
> no existe el método 'noexiste' en la clase A
>
> Bueno espero haber entendido bien. 
> Saludos.
>
> -- 
> Gabriel.
>
Gracias, funcionó perfecto con getattr(a, nivel)(*pargs, **kwargs)

Saludos,

Javier.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20141003/d1a6095d/attachment.html>


More information about the pyar mailing list