[pyar] Llamar método dinámicamente

Daniel Moisset dmoisset en machinalis.com
Dom Jul 4 18:56:39 ART 2010


2010/7/4 Andrés Gattinoni <andresgattinoni en gmail.com>:
> 2010/7/4 SAn <gringotumadre en gmail.com>:
>> Sí, fijate por el módulo inspect, más especificamente aca:
>> http://docs.python.org/library/inspect.html#inspect.getargspec
>
> Gracias, eso era lo que necesitaba. Ahora una pregunta que debería
> haber previsto jeje. Cómo hago para llamar al método dinámicamente,
> pasandole los parámetros que corresponden.
>
> Por ejemplo:
>
> class A:
>    def metodo (self, nombre, apellido):
>        pass
>
> cmd = {'command': 'metodo', 'params': {'nombre': 'Andrés', 'apellido':
> 'Gattinoni'}}
>
> Cómo hago para llamar dinámicamente al método de la clase a partir de
> los datos que tengo en el diccionario?

objeto = A()
getattr(objeto, cmd['command'])(**cmd['params'])

puede ser un poquito mas complicado si tenes mezclados argumentos
posicionales y por keyword, pero esa es la idea.

Saludos,
   D.



More information about the pyar mailing list