[pyar] Como puedo pasarle argumentos a una funcion ?

Emiliano Dalla Verde Marcozzi edvm en airtrack.com.ar
Jue Abr 14 19:17:59 ART 2011


Buenas querida lista,
Tengo el siguiente code incompleto ...

ef process(action, args):
    ''' Dados action y argumentos, me fijo que action sea una funcion
definida,
    caso afirmativo, llamo a la funcion con args
    '''
    if action is None: # si no tengo action, retorno
        log.msg('action es None, retorno')
        return

    if action not in metodos.keys():
        log.msg('%s no es un metodo definido' % action)
        return

    method = metodos[action] # guardo referencia al metodo / funcion

    if args is not None:
        # cantidad de parametros de nuestra funcion, si es que acepta
        argslen = getattr(method.func_code, 'co_argcount', None)
        if argslen is not None:
            # ACA FUI :)

process toma dos parametros, action es un string cual es el nombre
del metodo al cual se va a llamar, y args son los argumentos que se
le van a pasar al metodo action. El problema que tengo es justamente
pasarle los argumentos a la funcion (chan !)
Ej:
1- method = metodos[action] #aca guardo la funcion, puedo llamarla por
method()
2- method(args) # args es una lista, aca se me jodio todo.

Puede ocurrir, que method guarde referencia a una funcion 'foobar' definida
como:

def foobar(arg1, arg2):
    return arg1 + arg2

Mi problema, o lo que quiero intentar hacer, es no tener que redefinir
foobar para
que tome una lista, o escribir otra funcion que tome como argumento la lista
y llame
a foobar como corresponde, sino, de alguna forma iterar por la lista, y
asumir que el
primer valor de la lista corresponde al primer argumento de la funcion, el
segundo
valor de la lista corresponde al segundo argumento de la funcion y asi ....

Le heche un ojo a inspect de la std library, y no encontre forma de como
lograrlo,
ideas ? ^^''
Gracias de antemano,


-- 
*Emiliano Dalla Verde Marcozzi*
Encargado de IT y Python Ninja Developer



San Juan 4879
Rosario. Argentina
Tel. (+54) 341 437 6878
www.airtrack.com.ar

"Chuck Norris doesn't need a debugger, he just stares down the bug until the
code confesses."

- proyectos: https://bitbucket.org/edvm
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110414/f6ac97ea/attachment.html>


More information about the pyar mailing list