Código de Python - Llamar a una funcion desde una variable con parametros

Imágen de perfil

Llamar a una funcion desde una variable con parametrosgráfica de visualizaciones


Python

Publicado el 26 de Junio del 2009 por Xavi
8.426 visualizaciones desde el 26 de Junio del 2009. Una media de 28 por semana
Código que muestra como ejecutar una función utilizando como variables el nombre de la función y los parámetros de la misma.

Versión 1

Publicado el 26 de Junio del 2009gráfica de visualizaciones de la versión: Versión 1
8.427 visualizaciones desde el 26 de Junio del 2009. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
 
"""
Llamar a una función desde una variable con parámetros

La forma de llamarlo es:
    python programa.py funcion1 valor
    python programa.py funcion2 valor1 valor2

"""
 
import os
 
class className(object):
 
    def function1(self,valor):
        return "el valor recibido es: %s" % valor
 
    def function2(self,valor1,valor2):
        return "el primer valor recibido es: %s, y el segundo es: %s" % (valor1,valor2)
 
if __name__=="__main__":
    # os.sys.argv contiene los valores recibidos
    # El primer valor es el nombre del archivo python, el segundo es el nombre
    # de la función a la que llamar, por eso no hace nada si no recibe por lo
    # menos 2 parámetros.
    # Los siguiente parámetros, serán los valores de las funciones.
    #   python programa.py funcion1 valor
    #   python programa.py funcion2 valor1 valor2
 
    # Creamos un objeto de la clase
    obj=className()
    # Si obtenemos mas de dos parámetros
    if len(os.sys.argv)>=2:
        # Si el segundo parámetro es el nombre de una función conocida
        # dir(obj) devuelve una lista con todas las atributos del objeto
        if os.sys.argv[1] in dir(obj):
            try:
                # Llamamos a la función indicada pasando los parámetros recibidos
                print getattr(obj, os.sys.argv[1])(*os.sys.argv[2:])
            except Exception, e:
                print e
        else:
            print "No existe la función"



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1823