#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
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 TypeError:
print ("Error en los parametros")
else:
print ("No existe la función")
Comentarios sobre la versión: Versión 2 - Python 3.x (0)
No hay comentarios