[Python-es] RE: Una ultima duda con el parser

Hernan Martinez Foffani hernan en orgmf.com.ar
Mie Sep 4 15:09:02 CEST 2002


> > > y tengo que esto es tipo string, como puedo hacer que se cree un
> > > objeto para luego poder pasarle
> > > el metodo evaluar, que es dependiente de cada clase, es decir,
> > > especifico para el Not, And, Or y
> > > Terminal.
> >
> > si Not, And, etc. son metodos de una determinada clase, y
> > no funciones globales, tenes que cambiar el parser para que
> > te devuelva algo como:
> >
> > r = "obj.Or(obj.Terminal('linux'),obj.And(... etc.... "
> >
> > y luego:
> >
> > eval(r, {"obj": obj})
> >
> > donde obj es un objeto de la clase que define los metodos.
>
> ents. con lo que me estas diciendo y como he dicho anterior, que
> cada operador booleano y el not
> son cada uno una clase distinta, tengo una clase And, otra Or,
> otra Not y otra Terminal, tendria
> que> o cuando los parseo crear dichos objetos por separado, es
> decir, cada ver que encuentro un
> and ya crear el objeto de la clase And dentro del propio parser o
> si no, parsear de nuevo el
> resultado para ver cuando estoy en cada cajo y crear un objeto de ello?

no. no. no te habia entendido. disculpa.
si And, Or, etc. son clases, entonces solo tendrías que hacer:

eval(r, {"And": And, "Or": Or, "Not": Not, "Terminal": Terminal})

-Hernan





Más información sobre la lista de distribución Python-es