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

Chema Cortes pych3m4 en gmail.com
Jue Jul 10 14:39:05 CEST 2008


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 dí
> 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.
_______________________________________________
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