Re: ¿¿Patrón de diseño??

Jose Caballero jcaballero.hep en gmail.com
Jue Jul 10 14:44:22 CEST 2008


El día 10 de julio de 2008 8:39, Chema Cortes <pych3m4 en gmail.com> escribió:

> El día 10 de julio de 2008 10:16, Beni <camontuyu en yahoo.es> escribió:
>
> > Tengo el siguiente 'problema' de diseño... Estoy haciendo una clase que
> lee
> > datos de una página web mediente urllib y esta tiene un conjunto de
> > expresiones regulares compiladas para obtener estos datos. He puesto
> estas
> > expresiones como variables de clase para que sean compartidas por todas
> las
> > instancias... sería algo así:
> >
> > class Web:
> >    _RE_TXT_NOMBRE = r'foo'
> >    _RE_NOMBRE = re.compile(_RE_TXT_NOMBRE)
> >
> >    _RE_TXT_APELLIDOS = r'pepe'
> >    _RE_APELLIDOS = re.compile(_RE_TXT_APELLIDOS)
> >
> >    [...]
> >
> > Como veis me interesa tambien el texto de la expresión regular (ya que no
>> > con la forma de obtener el texto a partir de una expresión compilada).
>
> _RE_NOMBRE.pattern
> _RE_APELLIDOS.pattern
>
> Este módulo ('sre') está programado en C y no expone sus atributos en
> un diccionario, al estilo pythónico (no se ven con el dir()). Tendrás
> que revisar la documentación para conocer su funcionamiento.
>
> > El
> > problema está en que las expresiones están creciendo en número y me
> 'afean'
> > la clase.
> >
> > Por eso estoy buscando un método, patrón de diseño o algo pythonico para
> > quede más bonito. No se,... un diccionario de expresiones regulares?...
> >
> > ¿Se os ocurre algo? ¿algún comentario?
>
> Yo evitaría los atributos de clase, pero lo que puedes hacer es
> agrupar todas estas expresiones regulares en un diccionario, tal como
> bien dices.




Creo recordar que en el libro 'dive into python' hay un cap. donde se crea
un diccionario de reglas (para encontrar el plural de palabras en inglés),
con regexp. Quizás es parecido a lo que necesitas. Échale un vistazo.


Saludos,
Jose
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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